# Introduction

In this section, you can find the basic information about the product and also the formatting conventions used in the topics.

In this Section

- General Data Protection Regulation (GDPR)
- Liability
- Revision history
- General information
- System overview

# General Data Protection Regulation (GDPR)

This product offers the possibility to process personal identifiable information such as system user name, role and IP-address. The purpose of this processing capability could be to enhance quality control through traceability and proper access management.

If you decide to process personal data you need to be aware of and comply with relevant personal data protection rules, including, in the EU the GDPR as well as other applicable laws, directives and regulations. Atlas Copco can in no way be held liable for any use made by you of the product.

# Liability

Many events in the operating environment may affect the tightening process and shall require a validation of results. In compliance with applicable standards and/or regulations, we hereby require you to check the installed torque and rotational direction after any event that can influence the tightening result. Examples of such events include but are not limited to:

- initial installation of the tooling system

- change of part batch, bolt, screw batch, tool, software, configuration or environment

- change of air- or electrical connections

- change in line ergonomics, process, quality procedures or practices

- changing of operator

- any other change that influences the result of the tightening process

The check should:

- Ensure that the joint conditions have not changed due to events of influence.

- Be done after initial installation, maintenance or repair of the equipment.

- Occur at least once per shift or at another suitable frequency.

# Revision history

Edition | Date | Technical Writer | Description
--- | --- | --- | ---
2.0 | 11th June 2021 | Dmitry Philippov | First issue.

In the event of conflicts between translations of this manual, always refer to the official English version.

This manual may be altered without further notice. For further information log on to Atlas Copco www.atlascopco.com

# General information

Station configurations are created and edited in Smart AMS Config accessible through web browsers. You can also use .xlsx configuration files.

Smart AMS Manager provides a Web user interface. The application can be hosted on a local or remote machine. It has the following sections: Dashboard, Service Manager, App Context, Configuration, Administration, and Event Log. Smart AMS is reconfigured and station configurations are updated when you push a new configuration from within Smart AMS Config.

When connecting to a tightening tool, Smart AMS keeps it locked until the product is signed in at the corresponding station. When the product is signed in, Smart AMS enables the tool. When tightening is finished, Smart AMS locks the tool again. The use of a socket selector and free tightening order mode are also possible.

When a product is signed in at a station, the tightening workflow related to the station always starts from the beginning. This behavior does not depend on whether the product is signed in automatically or manually. When in sequential mode, the tools at the station are always activated in sequence specified in the recipe list, as the threaded joints become tightened one after another. Parallel mode and free order mode can also be used.

When a product is signed out from a station, Smart AMS sends a sign-out message with the product status to the PLC and MES, provided PLC or MES is activated in the configuration.

Barcode scanners can be connected to controllers. All scans are treated equally, regardless of the tool to which the scanner is connected. IXB and STwrench can have barcode scanners integrated, technically they are treated in the same way.

Stationary controllers like PF6000 and PF4000 can be equipped with Stack Lights an Operation Panels.

Station events such as product sign-in, product completed OK, product completed NOK, tightening status (OK or NOK) can be indicated by a Stack Light connected to the corresponding controller.

ToolsNet connection can be specified in order to download result data: OK, NOK, NYD.

When the operator presses the "skip bolt" button on the Operator Panel or Stack Light connected to the controller, the current bolt will be skipped, regardless of what tool is currently active.

# System overview

The System Overview section provides an overview of features available with the Atlas Copco software product of Smart AMS (Smart Assembly Management System). Here you can find basic information about the functionality and usage of the product.

In this Section

- Main functions
- Interfaces
- Minimum requirements

# Main functions

## Tightening process control

The minimum product configuration allows you to control tightening processes in the course of product assembly.

Multiple tools can be used at each station for performing several tightening operations, each of which can be configured to meet particular requirements.

## Industrial automation

- After signing-in a product at a station, Smart AMS determines which tightening steps need to be performed.

- Tightening steps are determined by program configuration; their selection may depend on PR Codes retrieved from MES.

- A special stack light or a lamp on the operator panel can be used to indicate that the tightening workflow is in progress.

- When in automatic mode, Smart AMS automatically selects the corresponding tightening program in the controller and waits for the operator to perform tightening.

- If the operator makes an OK tightening, Smart AMS automatically proceeds to the next tightening step, if any.

- If the operator makes an NOK tightening, Smart AMS can prompt for retry as many times as specified by system customizer. If all retries have been failed, Smart AMS acts according to one of the following strategies:
  Strategy 1: Abort the job and sign out the product.
  Strategy 2: Let the operator skip the bolt by using the corresponding button.
  Strategy 3: Let the operator re-do the whole workflow at the station.
  Strategy 4: Advance to the next bolt automatically.

The workflow is completed when there are no tightening jobs to perform or when the product is signed out.

Lamps show the operator whether the overall product status is OK or NOK. A Stack Light can be configured for this.

## Centralized configuration storage

The Smart AMS Config application includes configurations for stations, accessories, function options, and process recipes.

A web user interface allows you to apply configurations by using your web browser.

## Access control

You can specify different credentials for signing in to Smart AMS Manager and Smart AMS Config.

## Emergency mode

Smart AMS supports emergency mode that can be activated by the operator in case of errors: wrong recipe configuration (for example, tightening program does not exist), problem with receiving MES build data, etc. An error state can be indicated by a system error lamp.

If an error occurs, the operator can switch the station to emergency mode by using a key switch. A special lamp is reserved for indicating that the station is in emergency mode.

In emergency mode, all tools at the station will be unlocked, and predefined tightening programs or manually selected tightening programs will be used, provided the operator panel or socket selector is configured. When all the controllers are switched back to automatic mode, the station will return to automatic mode.

## Distributing and activating a single-station tightening task

Configurations specify tightening tasks to be performed depending on product properties. Smart AMS automatically selects the tightening task, unlocks the tool for tightening, and sets the corresponding tightening program.

## Manual tightening task control

Smart AMS allows the operator or plant maintenance team to skip the entire product or a particular bolt in it.

## MES API

You can use the built-in MES API for exchanging data between Smart AMS and a manufacturing execution system (MES), including the retrieval of build data, making sign-in requests, and reporting of result data. The transfer of tightening traces is supported.

## Monitoring API

It provides status information about the running Smart AMS instance. You can use this API to monitor live data for your reports and dashboards.

## Station dependencies

You can specify dependencies between stations within a selected assembly line or across multiple assembly lines.

## Synchronization between PLC and barcode scanner

Products can be signed in by using a barcode scanner or PLC. Smart AMS can be configured to send scanned barcodes to the PLC when operating in manual mode.

## Various product sign-in options

Products can be signed in by using a barcode scanner, PLC, or MES.

## Connection check

Smart AMS monitors the connection to all devices. When the connection changes state, the corresponding entry is written to the Event Log.

## Avoiding duplicates at product sign-in

You can choose to prevent a new product from being signed in if the product ID is the same as that of the product that was signed in immediately before it.

## Avoiding completed products sign-in

You can choose to prevent a new product from being signed in if it has already been successfully processed.

## Integration with SQS3

Smart AMS is capable of communicating with SQS3 for data transfer and interdependencies among stations in assembly lines.

## Integration with ToolsNet 8

Smart AMS is capable of sending result data (OK, NOK, NYD) to ToolsNet 8.

## Integration with ILT

Smart AMS is compatible with Industrial Location Tethering solutions to ensure the tools will only work where you want them to.

# Interfaces

## MES interface

Smart AMS provides an interface based on WebSocket to retrieve product data from MES. The interface is customizable on demand.

## Controller and tool support

Smart AMS is compatible with the following Atlas Copco controllers and tools: Power Focus 4000, Power Focus 6000, PowerMACS 4000, STwrench, ICB, ITB.

## PLC interface

Smart AMS provides a PLC interface via TCP IP communication to line PLC using AMS PLC Product Trace Protocol to track product sign-in and sign-out. The interface is customizable on demand.

## Product scan support

As an alternative to signing-in a product by PLC or MES, the system allows the operator to sign it in by using its barcode. In this case, a compatible scanner must be connected. You can use a scanner connected to the tightening controller, integrated into the tool, or connected to the Smart AMS Server by using a LAN connection.

## Modbus/TCP

Smart AMS is compatible with Modbus TCP converters, allowing you to connect stack lights, buttons, horns, and other peripheral devices. Only Modbus devices that support the Read Coils (function code 1) and Write Single Coil (function code 5) functions can be used with Smart AMS.

# Minimum requirements

## Software requirements

64-bit Windows. Server components were tested on Windows Server 2012 (64-bit).

Microsoft .NET Framework 3.5 must be installed before Smart AMS can be installed.

Supported browsers: Microsoft Edge version 79.0.309 or later, recent versions of Google Chrome, Firefox, Safari.

## Hardware requirements

The hardware requirements vary according to the number of connected spindles.

Within 1 and 50 spindles: 4-core Intel Xeon E5 v2 CPU, 10 GB of RAM, 2x SAS drives.

Within 51 and 100 spindles: 6-core Intel Xeon E5 v3 CPU, 15 GB of RAM, 3x SAS drives.

Within 101 and 200 spindles: 8-core Intel Xeon E5 v4 CPU, 20 GB of RAM, 2x solid state drives.

Within 201 and 300 spindles: 8-core Intel Xeon E5 v4 CPU, 25 GB of RAM, 2x solid state drives.

Over 300 spindles: please contact product support.

These specifications are given under the assumption that the production cycle time is not less than one minute per product. If you plan to use Smart AMS in an environment with a shorter cycle time, please contact product support for Smart AMS.

# Installation and Upgrade

In this section, you can find information to help with the initial installation of the product, or upgrading from one version to another.

In this Section

- Software installation
- Software upgrade
- Software removal

# Software installation

# Installing Error Proofing License Manager

1. Right-click Error Proofing License Manager Installer.exe, and then click Run as administrator.

   - If a dialog prompt from User Account Control asks whether to allow this program to make changes to your computer, click Yes.

   - If Windows Defender SmartScreen prevents the installer from running, click More info, and then click Run anyway.

2. In the next dialog box, select the "I accept the agreement" option, and then click Next.

3. Confirm the installation path. Default path: C:\LLM.

4. You will be prompted to specify two ports for Error Proofing License Manager: one for data communication and the other for the Web user interface. If there is no reason to specify custom values, leave the default values.

   Port of License Manager field: Specify the TCP port Error Proofing License Manager will use for communication. Default value: 7070.

   Port of the web interface field: Specify the TCP port for the Web user interface, which allows you to configure Error Proofing License Manager using your web browser. Default value: 8082.

5. Click Next, and then click Install.

Once the installation is complete, you will find the License Manager shortcut on your Desktop. The basic configuration information will be summarized in the Error_Proofing_LicenseManager_Installation_Summary.txt file located at C:\Users\<user name>\AppData\Local\, and also on your Desktop.

The following services are installed on the computer: Apache Tomcat, FlexNet License Server - acopco, and FlexNet-Service Watchdog. FlexNet-Service Watchdog ensures the proper operation of the license server and license database.

ToolsTalk Server v.2 and Error Proofing License Manager cannot be colocated on the same machine. If you are using ToolsTalk, use a different machine for ToolsTalk Server.

# Installing Smart AMS

## Important notes

Microsoft .NET Framework 3.5 must be installed before Smart AMS can be installed.

To keep Smart AMS running smoothly, virus scanners (like Windows Defender) on the Smart AMS Server should either be switched off entirely or at least have certain exclusions configured.

1. Disable scheduled and real-time scanning for files under the following paths:

   C:\ProgramData\AMP
   C:\SAMS

2. Configure exclusions for files that are opened by the following processes:

   erl.exe
   AMPServiceProcess.exe

## Installation process

1. Launch Setup-SAMS-1.5.exe.

   - If a dialog prompt from User Account Control asks whether to allow this program to make changes to your computer, click Yes.

   - If Windows Defender SmartScreen prevents the installer from running, click More info, and then click Run anyway.

2. Select the language to use during the installation.

3. In the License Agreement dialog box, select the "I accept the agreement" option, and then click Next.

4. Confirm the installation path. Default path: C:\SAMS.

5. Choose an installation mode: Full installation or Custom installation. If you select Full installation, all product components will be installed. Selective installation allows you to select any of the following components: Erlang OTP, RabbitMQ Server, SAMS (that is, Smart AMS). Normally, you should install all the three components.

6. Specify the Start menu folder to add the program's shortcut to. Default: SAMS.

7. Specify whether to create the desktop shortcut for all users or for the current user only.

8. If you have chosen to install SAMS, specify the HTTP port that it will use. It is recommended that you leave the default value. You will also need to specify a username and password. Write them down and keep them in a secure place. You will then need to enter these login credentials to log on to Smart AMS Manager.

   If you have chosen to install RabbitMQ Server, you will be prompted to specify the virtual host, username, and password. If there is no reason to specify custom values, leave the default values. Write them down and keep them in a secure place.
   Select the Enable Management Plugin check box, if necessary. The RabbitMQ management plugin provides an HTTP-based API for management and monitoring of RabbitMQ nodes and clusters, along with a browser-based UI and a command line tool, rabbitmqadmin. To save system resources, it is recommended that you do not install this component on production machines.

   If you see the Windows Defender Firewall has blocked some features of epmd.exe or erl.exe message, click on Allow access.

9. Specify the host name or IP address and the TCP port that SAMS will use for connecting to Error Proofing License Manager. Default port: 7070.

10. When you reach the Completing the SAMS Setup Wizard window, select the Start Windows service (in background) check box.

# Software upgrade

# Upgrading Smart AMS

You can upgrade the software from Smart AMS v. 1.2, Smart AMS v. 1.3, or Smart AMS v. 1.4 to Smart AMS v. 1.5. If an older version of Smart AMS than v. 1.2 is already installed, please uninstall it before installing Smart AMS v. 1.5.

If you have a custom-designed version of Smart AMS v. 1.2 installed on the machine, please uninstall it before installing the standard version.

Any older versions of Erlang OTP or RabbitMQ Server, detected on the machine during the upgrade, will be preserved.

After the upgrade has completed, you can import your .xlsx configuration file of the previous Smart AMS version into Smart AMS Config v. 1.5. The configuration parameters introduced in Smart AMS v. 1.5, which were not available in the old version, will be set to their default values.

# Software removal

# Uninstalling Smart AMS

To uninstall Smart AMS:

Find "SAMS" under the Start > Settings > Apps & features dialog (in Windows 10), and then uninstall it as you normally would. Alternatively, use the Uninstall Smart AMS shortcut on the Windows Start menu.

During the uninstallation process, you can choose to uninstall Erlang OTP and RabbitMQ Server by selecting the corresponding check boxes.

To uninstall Error Proofing License Manager:

- Find "Error Proofing License Manager" under the Start > Settings > Apps & features dialog (in Windows 10), and then uninstall it as you normally would.

or

- Navigate to C:\LLM\LLM, which is the default path to Error Proofing License Manager, and then run uninstall_as_service.cmd from that folder.

# Configuration

In this section, you can find detailed information about how to create, modify, and verify product settings.

In this Section

- Licensing
- Smart AMS Manager
- Smart AMS Config
- Configuration file in Microsoft Excel format

# Licensing

The trial period for Smart AMS is 60 days. To continue using Smart AMS beyond the trial period or to connect more than 25 spindles, you will need a license.

During the trial period, Smart AMS supports up to 25 spindle connections only.

A customer account is created on the Atlas Copco customer license portal at https://atlascopco.flexnetoperations.com/control/atco/login when Smart AMS is purchased.

Error Proofing License Manager, which is compatible with Smart AMS, helps you organize your licenses with a single dashboard. The licenses are stored on the client side on a computer with the FlexNet License Server service running in the background. The computer must be accessible from the computers on which Smart AMS is running.

In this Section

- Registering your Error Proofing License Manager
- Mapping features
- Using a capability response file
- Using a non-electronic license token
- Using Error Proofing License Manager
- Activating a license
- Changing license server URL

# Registering your Error Proofing License Manager

When you purchase Smart AMS, you are registered by the Atlas Copco customer center, and you are given credentials to log on. Then you will need to register your Error Proofing License Manager.

- Log on to https://atlascopco.flexnetoperations.com/control/atco/login

- On the Atlas Copco Customer License Portal, click the Register License Manager or USB Device link.

- Enter your data, and then click Create.

Data to register Error Proofing License Manager

ID field: On the computer where Error Proofing License Manager is installed, determine the MAC address that pertains to FlexNet License Server. Input that MAC address here. This is a mandatory field required to proceed with the registration.

Make sure not to include hyphens in this field!

To find out the MAC address:

Open the command prompt window by pressing the + R keyboard shortcut, and then entering the cmd command in the Run dialog box.

At the command prompt, enter the command: getmac /V

You will see a list of MAC addresses for network adapters on the system. Use the one that is relevant to FlexNet License Server, which is a service that runs in the background on the computer where Error Proofing License Manager is installed.

ID Type list: Select ETHERNET.

Device Name field: Example: Acme computer.

Site Name field: Example: Acme factory.

Type list: Select FLX_SERVER.

# Mapping features

After your purchase, you can map the available features to Error Proofing License Manager.

Ensure that you have Internet connectivity from the computer running Error Proofing License Manager.

- Log on to https://atlascopco.flexnetoperations.com/control/atco/login

- Click the Search License Manager or USB Device link, and then find your record by entering the ID, device name, or site name.

  You will see a list of entries.

- Click the corresponding ID in the list. You will be switched to the View License Manager or USB Device page.

- On the View License Manager or USB Device page, click the Map Features link.

  You will see a list of features. You can filter the list by using the available criteria and clicking the Search button.

- In the Qty to Add column, specify the number of feature instances you want to add to your Error Proofing License Manager, and then click Map Features.

After some time, the features will appear in your Error Proofing License Manager. The refresh interval is configured on the Properties page in Error Proofing License Manager.

Parameters that affect mapping

Server host ID: Select the MAC address that you used when registering Error Proofing License Manager.

Synchronization to Backoffice Interval: The amount of time between synchronization sessions with the back office. Example: 10m (for ten minutes). A low amount can place a load on the server.

Capability Polling Interval: The amount of time between capability-request polls. Example: 10m (for ten minutes). A low amount can place a load on the server.

# Using a capability response file

If you do not have Internet access from within your manufacturing network, you can install licenses by using a capability response file.

- Log in to your account on the Atlas Copco customer license portal at https://atlascopco.flexnetoperations.com/control/atco/login.

- Click the Search License Manager or USB Device link, and then find your record by entering the ID, device name, or site name.

  You will see a list of entries.

- Click the corresponding ID in the list.

- Click the Download Capability Response link, and then save the .bin file to your computer.

Using a storage device, you can transfer the capability response file to another computer. Then you will need to upload the file to Error Proofing License Manager.

- Go to Error Proofing License Manager address in your web browser by using the License Manager shortcut on the Desktop or on the Windows Start menu.
  Sample address: localhost:8082/flsm. Port number is selected when you install Error Proofing License Manager. The default is 8082. Make sure to replace localhost with the actual IP address of the computer Error Proofing License Manager is installed on.

- In Error Proofing License Manager, click Offline Server Updates.

- On the Offline Server Updates page, click Browse..., then select the response file, and click Upload.

# Using a non-electronic license token

If you cannot use an electronic way to add features, you can add them by using non-electronic license tokens. Such tokens are usually issued in the form of a paper sheet with the license code written on it.

- Log on to https://atlascopco.flexnetoperations.com/control/atco/login

- On the Atlas Copco Customer License Portal, click the Register Additional License Tokens link.

- Enter your token code, and then click Register.

The corresponding features will become available.

# Using Error Proofing License Manager

- Go to Error Proofing License Manager address in your web browser by using the License Manager shortcut on the Desktop or on the Windows Start menu.
  Sample address: localhost:8082/flsm. Port number is selected when you install Error Proofing License Manager. The default is 8082. Make sure to replace localhost with the actual IP address of the computer Error Proofing License Manager is installed on.

You can check the availability of devices and features.

- In Error Proofing License Manager, click the Devices link.

  You will see a list of devices with licenses used.

- Click on the device ID to get information about the selected instance.

You can check the features' count and availability.

- In Error Proofing License Manager, click the Feature Usage link.

  You will see a list of features.

- Click on the desired feature title to get information about the instance count and availability.

You can specify the host name and port to access Error Proofing License Manager.

Do not change the parameters unless the scope of the change is fully understood.

- In Error Proofing License Manager, click the Settings link.

  You will see a list of fields, including the host name and port.

# Activating a license

You can switch to using your license anytime, regardless of whether the trial period has expired.

When you have sufficient number of features available in Error Proofing License Manager, go to Smart AMS Config and push the configuration. This step is required for the license to be recognized by Smart AMS.

# Changing license server URL

You can specify a new host name or IP address and the TCP port that Smart AMS will use for connecting to Error Proofing License Manager.

1. Use the Change License Server URL shortcut on the Windows Start menu to run the Change License Server URL script.

   To run the Change License Server URL script as an administrator, right-click the Change License Server URL shortcut, and then click Run as administrator.

2. Enter the new host name or IP address.

3. Enter the port number.

# Smart AMS Manager

Smart AMS Manager hosts a nice way of checking the current status of services. The application's GUI is accessible through a Web user interface.

In this Section

- Logging on to Smart AMS Manager
- Logging out from Smart AMS Manager
- Using the Dashboard
- Using the Service Manager
- Viewing the app context
- Specifying area distances for all ILT devices
- Viewing and filtering the event log
- Changing your password or adding a new user

# Logging on to Smart AMS Manager

- Go to the Smart AMS Manager address in your web browser by using the Open Smart AMS Manager shortcut on the Desktop or on the Windows Start menu.
  Sample address: http://localhost:6394. Port number is selected when you install Smart AMS. The default is 6394. Make sure to replace localhost with the actual IP address of the computer Smart AMS Manager is running on.

A dialog box will appear in the web browser prompting you to select a display language and enter your username and password.

- Select the desired language from the drop-down list and enter your credentials to log on.

The data you enter in the Username and Password fields must match those provided when installing Smart AMS Manager. You can get this information from the person responsible for installing Smart AMS.

After you log on, your username will be displayed in the upper right corner of the page. You can then start using Smart AMS Manager.

# Logging out from Smart AMS Manager

You can log out anytime.

- To log out, click your username in the upper right corner of the page, and then click Logout.

# Using the Dashboard

You must first navigate to Smart AMS Manager.

- Go to the Smart AMS Manager address in your web browser by using the Open Smart AMS Manager shortcut on the Desktop or on the Windows Start menu.
  Sample address: http://localhost:6394. Port number is selected when you install Smart AMS. The default is 6394. Make sure to replace localhost with the actual IP address of the computer that Smart AMS Manager is running on.

- To switch to the Dashboard, click in the Navigation Panel on the left of the page. On mobile devices with a smaller screen, click your username in the upper right corner of the page, and then select Dashboard.

You can choose which subsections are shown on the Dashboard.

- Click , and then select or clear the check box next to each subsection name you want to show or hide: Service Manager, App Context, Licensing.

The Dashboard can contain the following subsections.

Service Manager: Shows the services that are running.
App Context: Shows the process information, as well as the message queue (MQ) and HTTP data.
Licensing: Shows if there is network connectivity between Smart AMS and Error Proofing License Manager, as well as host names of license servers with the number of used features and available features. The trial period indicator is green when there is more than one week left before the expiration date. If less than one week is left, it will turn yellow. It will turn red once the trial period has expired.
If no configuration has yet been applied to Smart AMS, the license indicator is gray.

A green dot indicates that the item is available or running. Otherwise, a red dot is shown.

# Using the Service Manager

You must first navigate to Smart AMS Manager.

- Go to the Smart AMS Manager address in your web browser by using the Open Smart AMS Manager shortcut on the Desktop or on the Windows Start menu.
  Sample address: http://localhost:6394. Port number is selected when you install Smart AMS. The default is 6394. Make sure to replace localhost with the actual IP address of the computer that Smart AMS Manager is running on.

- To switch to the Service Manager, click in the Navigation Panel on the left of the page. On mobile devices with a smaller screen, click your username in the upper right corner of the page, and then select Service Manager.

From within the Service Manager section you can view and manage settings in the following subsections: Services, Services Config, and Global Service Config.

Services: Shows the services. Click on the service title to see the Info and Control subsections for the selected service. In the Control subsection, use the Start and Stop buttons to start or stop services.

Normally you do not have to start or stop services manually. Stopping a service may affect the functionality of Smart AMS.

A green dot indicates that the service is running. If the service is stopped, a red dot is shown. A yellow dot indicates that the service is being reconfigured.

# Viewing the app context

You must first navigate to Smart AMS Manager.

- Go to the Smart AMS Manager address in your web browser by using the Open Smart AMS Manager shortcut on the Desktop or on the Windows Start menu.
  Sample address: http://localhost:6394. Port number is selected when you install Smart AMS. The default is 6394. Make sure to replace localhost with the actual IP address of the computer that Smart AMS Manager is running on.

- To switch to the App Context section, click in the Navigation Panel on the left of the page. On mobile devices with a smaller screen, click your username in the upper right corner of the page, and then select App Context.

In this section you can find paths to the configuration files, as well as configuration variable values.

# Specifying area distances for all ILT devices

You can set minimum and maximum distances to specific values for all ILT devices in all areas for the currently active configuration at a time. It is possible to leave either of the distance fields blank in case the corresponding distance is not specified.

ILT devices that are either offline or otherwise unreachable will not receive settings update.

- Go to the Smart AMS Manager address in your web browser by using the Open Smart AMS Manager shortcut on the Desktop or on the Windows Start menu.
  Sample address: http://localhost:6394. Port number is selected when you install Smart AMS. The default is 6394. Make sure to replace localhost with the actual IP address of the computer that Smart AMS Manager is running on.

- To switch to the Configuration section, click in the Navigation Panel on the left of the page. On mobile devices with a smaller screen, click your username in the upper right corner of the page, and then select Configuration.

- Click ILT, and then click the Set area distances on all ILT devices button.

Password field: Enter the password, which is supposed to be the same for all ILT devices in the configuration.

Minimum Distance field: Specify the minimum distance between the tools and their base stations. The unit of measure for distance is specified in ILT.

Maximum Distance field: Specify the maximum distance between the tools and their base stations. The unit of measure for distance is specified in ILT.

# Viewing and filtering the event log

You must first navigate to Smart AMS Manager.

- Go to the Smart AMS Manager address in your web browser by using the Open Smart AMS Manager shortcut on the Desktop or on the Windows Start menu.
  Sample address: http://localhost:6394. Port number is selected when you install Smart AMS. The default is 6394. Make sure to replace localhost with the actual IP address of the computer that Smart AMS Manager is running on.

- To switch to the Event Log section, click in the Navigation Panel on the left of the page. On mobile devices with a smaller screen, click your username in the upper right corner of the page, and then select Event Log.

- To get the latest data, click Refresh.

Logs include the following information about events: time, origin, level, event type, alarm (On or Off), message, and details.

## Services event history

In the Services Event History subsection you can find entries for events, including disconnections between Smart AMS and the server, disconnections between tools and controllers (with reference to the station), disconnections between the server and PLC, errors occurred during production, product sign-in and sign-out operations, changing of product status.

You can filter records by time stamp, source type, event type, message text, log level, and alarm.

1. Click the column header.

2. Specify the filter condition.
   The column header will be displayed in bold italic type.

   You can use an asterisk (*) in the filter to match any number of characters, where applicable.

3. Click Refresh.

To remove a filter, click the column header, and then delete any text from the Filter box. Alternatively, click Reset to revert to the default view.

To configure the advanced filters:

1. Click the Advanced filters wording.

2. In the Level list, select the log level of your choice: All, Info, Warning, Error, or Fatal.

3. In the Alarm list, select On, Off, or No Alarm Indication. You can combine these.

To view event details:

1. Click in the DETAILS column, if available. Event details are displayed in the JSON format.

2. To close the details popup, click a second time.

## Manager event history

In the Manager Event History subsection you can find entries for events pertaining to Smart AMS Manager.

# Changing your password or adding a new user

You can change your password for Smart AMS Manager. You can also add new users.

1. Use the Change Smart AMS Manager Password shortcut on the Windows Start menu to launch the Change Smart AMS Manager Password console application.

2. Enter your username or that of the user you want to add.

3. Enter your new password or the password for the new user.

# Smart AMS Config

Smart AMS hosts a nice way of configuring lines and stations through a Web user interface, which is called Smart AMS Config.

If you have used a version of Smart AMS older than 1.5, you can import your existing .xlsx configuration file into Smart AMS Config.

In this Section

- Logging on to Smart AMS Config
- Logging out from Smart AMS Config
- Specifying general settings for Smart AMS
- Adding and managing lines
- Adding and managing stations
- Working with configurations
- Changing the GUI theme
- Managing user accounts in Smart AMS Config

# Logging on to Smart AMS Config

- Go to the Smart AMS Config address in your web browser by using the Open Smart AMS Config UI shortcut on the Desktop or on the Windows Start menu.
  Sample address: http://localhost:6395. Make sure to replace localhost with the actual IP address of the computer Smart AMS Config is running on.

A dialog box will appear in the web browser prompting you to enter your username and password.

The first time you use Smart AMS Config, you are prompted to specify administrator login and password. You will then need to enter these login credentials to log on to Smart AMS Config as an administrator.

- Select the desired language from the drop-down list and enter your credentials to log on.

The data you enter in the Username and Password fields must match those provided when installing Smart AMS Config. You can get this information from the person responsible for installing Smart AMS.

After you log on, your username will be displayed in the upper right corner of the page. You can then start using Smart AMS Config.

# Logging out from Smart AMS Config

You can log out anytime.

- To log out, click your username in the upper right corner of the page, and then click Logout.

# Specifying general settings for Smart AMS

To customize the global configuration settings for Smart AMS, you must first navigate to Smart AMS Config.

- Go to the Smart AMS Config address in your web browser by using the Open Smart AMS Config UI shortcut on the Desktop or on the Windows Start menu.
  Sample address: http://localhost:6395. Make sure to replace localhost with the actual IP address of the computer Smart AMS Config is running on.

- To switch to the Configuration section, click in the Navigation Panel on the left of the page. On mobile devices with a smaller screen, click your username in the upper right corner of the page, and then select Configuration.

- Click .

## Basic

Customer Name field: Specify the name of the customer, if any. It is not included in result data.

Plant Name field: Specify the name of the plant.

Product Sign In Override toggle switch: If turned on, then when a new product is signed in, the current product will be signed out and the new product will be signed in at the same time. Turn it off to prevent new product sign-in while another product is in progress.

Ignore Double Product Sign In toggle switch: Turn it on to prevent new product sign-in if the product ID is the same as that of the product that was signed in immediately before it. If turned off, then no product ID comparison will be performed. The product will be signed in, and the tightening workflow will start from the beginning.

MNO Strategy list:
Inactive Workflow: If all tightening retry attempts in a workstep have failed, the tool will be locked until the current workstep is skipped manually.
Product Abort: If all tightening retry attempts in a workstep have failed, the product will be signed out automatically.
Workflow Restart: If all tightening retry attempts in a workstep have failed, the workflow will be restarted from the beginning. This option is the least recommended because the previous tightening results will be discarded and not sent to the MES.
Proceed: If all tightening retry attempts in a workstep have failed, Smart AMS will automatically proceed to the next workstep.

Emergency Result Mode list:
Static: When in emergency mode, the tool is always enabled. There is no way to enter a product ID. A static identifier "MANUAL" will be used for all results.
Only by Product Sign In: The tool is only enabled after a product is signed in. The product ID, with which the product is signed in, will be used for the results.
Static and Overwrite by Product Sign In: When in emergency mode, the tool is always enabled. If no product is signed in, a static identifier "MANUAL" will be used for all results. After a product is signed in, the product ID, with which the product has been signed in, will be used for the results.
Passive: Product identification is not under Smart AMS control. For example, if a barcode scanner is attached to the controller, the product ID received from the scanner will be attached to the tightening results. Any product ID received from the controller will not be altered by Smart AMS. If neither scanner nor other input source is specified, the product ID will be empty.

You can use a scanner, connected to the PF6000 controller, for scanning in automatic mode and in the controller's manual mode even when it is not connected to Smart AMS. In this case, the Emergency Result Mode setting must be set to Passive, and the Product Sign In setting for the PF6000 station must be set to Barcode.
In the settings for PF6000, the scan pass through function needs to be deactivated. Manual mode on the controller should be configured so that it is active when the keyswitch is set to emergency mode.

Emergency Sign In Mode list:
By Station Sign In: When in emergency mode, products can be signed in in the same way as when the station is in automatic mode.
By Station Sign In and Barcode Scanner: Products can be signed in in the same way as when the station is in automatic mode, as well as by barcode scanner. If a product is signed in by using a barcode scanner and there is a PLC configured for the station, Smart AMS will send the scanned code to the PLC. The sequence will be verified on the PLC and then re-aligned, if necessary.
Only by Barcode Scanner: Products can only be signed in by using a barcode scanner. If there is a PLC configured for the station, Smart AMS will send the scanned code to the PLC. The sequence will be verified on the PLC and then re-aligned, if necessary.

Station Dependency Mode list:
Off: No stations are interlocked. The product can be signed in and processed even if it was signed out in the NOK state from the previous station.
In Line Dependency: Within an assembly line, the product can be signed in only if it was signed out in the OK state from the previous station. If the tightening result at a station was NOK, then all the bolts tightened at the station should be loosened, and then the product can be signed in at the same station to rerun the tightenings.
Across Line Dependency: The product can be signed in only if it was signed out in the OK state from the previous station, even if the previous station belongs to a different assembly line. If the tightening result at a station was NOK, then all the bolts tightened at the station should be loosened, and then the product can be signed in at the same station to rerun the tightenings.

Reject Ok Product Sign In toggle switch:
If turned on, it will not be possible to sign in a product that has already been processed OK at the same station. When trying to sign in, the green segment will be actuated on the Stack Light connected to the station. The product will not be signed in. However, such a product can still be signed in at the station by an IO signal sent after the detection that the product is already OK. If the product is not detected as already OK, the IO signal will be ignored.
If turned off, it will be possible to sign in a product that has already been processed OK at the same station, regardless of sign-in method.

## Advanced

Product Disconnect Timeout field: Specifies the time period, in seconds, to wait until the product is signed out in the event that the connectivity to the controller is lost. If this field is left blank, the product will always be signed out immediately when Smart AMS loses connectivity to the controller. Smart AMS will then wait for a new product sign-in to resume the workflow at the station.

Product Status Storage Limit field: Specifies the maximum number of product status information entries to be stored in the buffer in Smart AMS. Default value: 10000.

ILT Server Port field: Specify the TCP port for connection. Default port: 10458.

Use Monitoring API toggle switch: If you want to use the Monitoring API, turn it on. Otherwise, turn it off.

Wait For Tool Stop toggle switch: Turn it on to have the system wait for all the tools at the station to stop rotating before aborting the workflow and signing out the product. All tightening results generated by the running tools will be reported to the MES. Representative use cases: the "Skip product" button is pressed or another product is signed in.
If turned off, the product will always be signed out immediately on detecting the corresponding signal. The system will discard all results for tightenings that were processed after the product sign-out.

## MES

MES Build Data

Enabled toggle switch: If you want to receive build data from the MES Adapter, turn it on. Otherwise, turn it off.

Adapter Name field: Enter the name of the MES Adapter from which you want to receive the build data.

Server Port field: Specify the TCP port that will be used for receiving the build data. Default port: 8089.

MES Sign In

Use these settings to configure the MES sign-in functionality.

Enabled toggle switch: If you want to sign-in products by using an MES Adapter, turn it on. Otherwise, turn it off.

Adapter Name field: Enter the name of the MES Sign-In Adapter.

Server Port field: Specify the TCP port that will be used for incoming connections from the MES Sign-In Adapter. Default port: 8091.

MES Result

Enabled toggle switch: If you want to use MES Adapters that provide result data to the MES, turn it on. Otherwise, turn it off.

Adapter Names fields: Enter the names of the MES Adapters to which you want to send the result data.

Server Port field: Specify the TCP port that will be used for sending the result data. Default port: 8090.

Result Storage Limit field: Specifies the maximum number of results to be stored in the buffer in Smart AMS. Default value: 10000.

TooIsNet 8 Integration

Enabled toggle switch: If you want to connect Smart AMS to a ToolsNet 8 server for downloading the result data (OK, NOK, NYD), turn it on. Otherwise, turn it off.

ToolsNet 8 IP field: Specify the IP address for connection.

ToolsNet 8 Port field: Specify the TCP port for connection. Default port: 7110.

ILT Devices

IP field: Specify the device's IP address.

Port field: Specify the TCP port for connection. Default port: 80.

- To add another ILT Device, click Add ILT Device.

Modbus Devices

IP field: Specify the IP address for connection. Only Modbus devices that support the Read Coils (function code 1) and Write Single Coil (function code 5) functions can be used with Smart AMS.

Port field: Specify the TCP port for connection. Default port: 502.

- To add another Modbus Device, click Add Modbus Device.

# Adding and managing lines

You must first navigate to Smart AMS Config.

- Go to the Smart AMS Config address in your web browser by using the Open Smart AMS Config UI shortcut on the Desktop or on the Windows Start menu.
  Sample address: http://localhost:6395. Make sure to replace localhost with the actual IP address of the computer Smart AMS Config is running on.

- To switch to the Configuration section, click in the Navigation Panel on the left of the page. On mobile devices with a smaller screen, click your username in the upper right corner of the page, and then select Configuration.

- To add a line, click Add Line.

- To rearrange lines, use a drag-and-drop operation.

- To copy a line, to paste it, or delete it, use the right-click context menu of the line.

## General

Line Number field: Specify the ordinal position of the assembly line. Examples: 1, 2, 3.

Line Name field: Enter the name of the assembly line.

Use Station Dependency Check toggle switch: If turned on, the product can only be signed in at a station in the assembly line if it was signed out in the OK state from the previous station. Otherwise, the product can be signed in and processed even if it was signed out in the NOK state from the previous station.
Note that SQS3 rework stations ignore the dependency check, even if it is activated for the assembly line in which they reside.

## Line PLC

Enabled toggle switch: If turned on, the PLC is activated. If turned off, Smart AMS ignores it.

IP field: Specify the IP address of the PLC. The same combination of IP address and port can be used on multiple assembly lines.

Port field: Specify the TCP port for connection.

Protocol Version list: Specify which protocol the PLC should follow.

# Adding and managing stations

You must first navigate to Smart AMS Config.

- Go to the Smart AMS Config address in your web browser by using the Open Smart AMS Config UI shortcut on the Desktop or on the Windows Start menu.
  Sample address: http://localhost:6395. Make sure to replace localhost with the actual IP address of the computer Smart AMS Config is running on.

- To switch to the Configuration section, click in the Navigation Panel on the left of the page. On mobile devices with a smaller screen, click your username in the upper right corner of the page, and then select Configuration.

- To add a station, click the plus sign to the right of the line's name, and then select Smart AMS Station, SQS Station, or Manual Station. If the station does not have a connection to Smart AMS, select Manual Station; Smart AMS will be ignoring it.

- To rearrange stations in the line, use a drag-and-drop operation.

- To copy a station, to paste it, or delete it, use the right-click context menu of the station.

In this Section

- Specifying settings for Smart AMS station
- Adding and managing controllers at Smart AMS stations
- Adding a recipe
- Specifying settings for SQS3 station
- Specifying settings for manual station

# Specifying settings for Smart AMS station

You must first navigate to Smart AMS Config.

- Go to the Smart AMS Config address in your web browser by using the Open Smart AMS Config UI shortcut on the Desktop or on the Windows Start menu.
  Sample address: http://localhost:6395. Make sure to replace localhost with the actual IP address of the computer Smart AMS Config is running on.

- To switch to the Configuration section, click in the Navigation Panel on the left of the page. On mobile devices with a smaller screen, click your username in the upper right corner of the page, and then select Configuration.

- Click the icon of the Smart AMS station you want to configure, and then click General.

Inactive toggle switch: If this toggle switch is turned on, the station is inactive. The icons of inactive stations appear dimmed. Inactive stations are unavailable for execution of work; Smart AMS ignores them. If turned off, the station is activated.

Station Name field: Specify the name of the station.

Station Number field: Specify the ordinal position of the station in the assembly line. Examples: 1, 2, 3.

Description (English) field: Provide a description for the station in English.

Description (local) field: Provide a description for the station in your local language.

Product Sign In list: Specify how to sign in products at the station.
PLC: Products can only be signed in by PLC.
Barcode: Products can only be signed in by barcode scanner.
PLC & Barcode: Products can only be signed in by either PLC or barcode scanner.
MES: Products can only be signed in by MES.
MES & Barcode: Products can only be signed in by either MES or barcode scanner.

Execution Mode list: In case of multiple tools, it determines the sequence in which the tools operate: parallel or sequential.
In parallel execution mode, if there are multiple tools at the station, the operator or operators may use the tools simultaneously—all tools specified in all recipes for the station will be active simultaneously. For this, select Parallel.
In sequential execution mode, tools can only be used in the order in which the recipes are listed. For this, select Sequential.

Rework Station list: Select the station dedicated for product rework. It can be an SQS3 Rework Station. Otherwise, select Not set.

LAN Scanner

Enabled toggle switch: If turned on, LAN scanner is used. Otherwise, no LAN scanner is used.

IP field: Specify the IP address for connection. Use this setting if you have a LAN scanner connected to the Smart AMS Server. Otherwise leave this field blank.

Port field: Specify the port for connection. Use this setting if you have a LAN scanner connected to the Smart AMS Server. Otherwise leave this field blank.

# Adding and managing controllers at Smart AMS stations

You must first navigate to Smart AMS Config.

- Go to the Smart AMS Config address in your web browser by using the Open Smart AMS Config UI shortcut on the Desktop or on the Windows Start menu.
  Sample address: http://localhost:6395. Make sure to replace localhost with the actual IP address of the computer Smart AMS Config is running on.

- To switch to the Configuration section, click in the Navigation Panel on the left of the page. On mobile devices with a smaller screen, click your username in the upper right corner of the page, and then select Configuration.

- Click the icon of the Smart AMS station for which you want to add a controller, and then click Controllers.

- To add a controller, click Add Controller.

You can add more than one controller.

- To add another controller, click Add Controller again.

- To copy a controller, to paste it, or delete it, use the right-click context menu of the controller.

Inactive toggle switch: If this toggle switch is turned on, the controller is inactive. Inactive controllers are unavailable for execution of work; Smart AMS ignores them. If turned off, the controller is activated.

Type list: Specify the type of controller: PF4000, PM4000, PF6000, IXB, or STwrench.

Name field: Specify the name of the controller for easy identification.

IP field: Specify the IP address of the controller.

Port field: Specify the TCP port for connection. It must be the same as the one specified in the controller. Example: port 4545 is used by default for Open Protocol tools.

Emergency Program field: Specify the number of tightening program to be set in the controller when Smart AMS operates in emergency mode. If the controller, when in emergency mode, is not controlled by Smart AMS then leave the field blank. Selection can be made by the controller—for example, through a socket selector. Selecting through socket selectors or other methods works even if a tightening program has already been specified. The controller starts with that tightening program, which can then be changed.

Use Traces toggle switch: To retrieve tightening traces for torque and angle over time, turn the toggle switch on. If you don't need traces, turn it off.

Free Order Mode toggle switch: If this toggle switch is turned on, the operator can perform tightenings, based on the current recipes, in a sequence as it makes sense to him or her. You may want to use this option if the order of tightening is unimportant. The tightening program, as well as the tightening sequence for bolts, are determined by the socket that the operator selects. Each socket on the socket selector must be assigned a particular tightening program specified on the controller. If turned off, the tightenings can only be performed in a predetermined sequence.

Use Pass Through For Scanning toggle switch: This setting is effective only when the controller type is PF6000 or IXB. If this toggle switch is turned on, Smart AMS subscribes to the Pass Through scan events instead of VIN events. This setting must match its counterpart (Pass Through Mode) on the controller. That is, scanners must be configured to have scanned strings passed through to an external system.

ILT Device Usage

Enabled toggle switch: If turned on, the ILT Device is active. Otherwise, it is ignored.

ILT Device list: Select the ILT Device. Otherwise, select Not set.

Tag ID field: Specify the identification of the locating tag. You can find it on the tag's sticker.

Modbus Device Usage

Enabled toggle switch: If turned on, the Modbus Device is active. Otherwise, it is ignored.

Modbus Device list: Select the Modbus Device. Otherwise, select Not set.

Input Offset field: Specify the address offset for incoming signals.

Output Offset field: Specify the address offset for outgoing signals.

# Adding a recipe

You must first navigate to Smart AMS Config.

- Go to the Smart AMS Config address in your web browser by using the Open Smart AMS Config UI shortcut on the Desktop or on the Windows Start menu.
  Sample address: http://localhost:6395. Make sure to replace localhost with the actual IP address of the computer Smart AMS Config is running on.

- To switch to the Configuration section, click in the Navigation Panel on the left of the page. On mobile devices with a smaller screen, click your username in the upper right corner of the page, and then select Configuration.

- Click the icon of the Smart AMS station for which you want to add the recipe, and then click Recipes.

- Click Add Recipe. To add another recipe, click Add Recipe again.

Bolt Case Name field: Type the bolt case name—the text string which is a unique identifier of the bolt case within all stations and recipes. This is part of outward information for bolts.

Bolt Case Description field: Enter a description for the bolt case.

PR Combination field: Restrict the recipe to a specific combination of PR Codes. To accept all workpieces, leave this field blank.

Controller list: Select the controller to be used.

Program Number field: Specify the tightening program number.

Tightening Count field: Specify the number of bolts that you want tightened using the specified tightening program.

Spindle Count field: Specify the number of spindles used with the tool. A wrong number will affect the output data for bolts, because bolt case names will not be correctly mapped to the results. For example, if Tightening Count is set to 3, and Spindle Count is set to 2, this means there are 6 bolts in the configuration.

MNO Count field: Specify the maximum amount of consecutive NOK retries. The counter is reset to 0 when an OK tightening is performed. It starts counting when a tightening attempt is NOK. For unrestricted number of retries, leave the field empty.

Area ID field: Specify the identification of the ILT area pertaining to the station. The ILT-driven tools at the station will only be enabled when inside the area. If this field is left blank, the tool specified in the recipe will be enabled regardless of its position.

# Specifying settings for SQS3 station

You must first navigate to Smart AMS Config.

SQS3 stations are not controlled by Smart AMS.

- Go to the Smart AMS Config address in your web browser by using the Open Smart AMS Config UI shortcut on the Desktop or on the Windows Start menu.
  Sample address: http://localhost:6395. Make sure to replace localhost with the actual IP address of the computer Smart AMS Config is running on.

- To switch to the Configuration section, click in the Navigation Panel on the left of the page. On mobile devices with a smaller screen, click your username in the upper right corner of the page, and then select Configuration.

- Click the icon of the SQS3 station.

Inactive toggle switch: If this toggle switch is turned on, the station is inactive. The icons of inactive stations appear dimmed. Inactive stations are unavailable for Smart AMS; they are ignored. If turned off, the station is activated.

Station Name field: Specify the name of the station.

Station Number field: Specify the ordinal position of the station in the assembly line. Examples: 1, 2, 3.

Description (English) field: Provide a description for the station in English.

Description (local) field: Provide a description for the station in your local language.

SQS Station IP field: Specify the IP address for connection.

Is Rework Station toggle switch: If turned on, the station is considered as an SQS3 rework station. Otherwise, the station is considered as a regular SQS3 station.

Use Line PLC Sign In toggle switch: If the product is to be signed in by the line PLC, turn this toggle switch on. If no line PLC is used, turn it off.

Rework Station list: Select the station dedicated for product rework. It can be an SQS3 Rework Station. Otherwise, select Not set.

# Specifying settings for manual station

You must first navigate to Smart AMS Config.

Manual stations are not controlled by Smart AMS.

- Go to the Smart AMS Config address in your web browser by using the Open Smart AMS Config UI shortcut on the Desktop or on the Windows Start menu.
  Sample address: http://localhost:6395. Make sure to replace localhost with the actual IP address of the computer Smart AMS Config is running on.

- To switch to the Configuration section, click in the Navigation Panel on the left of the page. On mobile devices with a smaller screen, click your username in the upper right corner of the page, and then select Configuration.

- Click the icon of the manual station.

Inactive toggle switch: If this toggle switch is turned on, the station is inactive. The icons of inactive stations appear dimmed. Inactive stations are unavailable for Smart AMS; they are ignored. If turned off, the station is activated.

Station Name field: Specify the name of the station.

Station Number field: Specify the ordinal position of the station in the assembly line. Examples: 1, 2, 3.

Description (English) field: Provide a description for the station in English.

Description (local) field: Provide a description for the station in your local language.

# Working with configurations

You must first navigate to Smart AMS Config.

- Go to the Smart AMS Config address in your web browser by using the Open Smart AMS Config UI shortcut on the Desktop or on the Windows Start menu.
  Sample address: http://localhost:6395. Make sure to replace localhost with the actual IP address of the computer Smart AMS Config is running on.

- To switch to the Configuration section, click in the Navigation Panel on the left of the page. On mobile devices with a smaller screen, click your username in the upper right corner of the page, and then select Configuration.

## Undoing or redoing an operation

You can undo or redo one or more actions.

- To undo an action, click .

- To redo the previously undone action, click .

- To refresh the data, click

## Pushing the current configuration to server

When you are finished customizing the configuration, you can push it to the server. If there is a product currently processed at a station that is subject to updating, the update will be applied when the product is signed out from the station. That is, processing of the product will not be aborted.

- Click .

- Enter a snapshot description, and then click Push.

## Importing Excel Configuration

You can import your existing .xlsx configuration file into Smart AMS Config.

When you import an .xlsx configuration file, the current configuration in Smart AMS Config will be overwritten. Your changes might be lost!

- Click .

- Click Choose File, and then select your .xlsx configuration file.

- Click Import.

## Saving the configuration snapshot

You can save the current configuration as a snapshot that you can use later.

A new snapshot is also created each time you push a configuration to the server.

- Click and enter a description for the snapshot.

- Click Save.

The snapshot will then appear in the History section of Smart AMS Config.

## Rolling back changes in configuration

You can roll back the configuration to a previous snapshot.

The operation only restores a previous version of the configuration. It does not push anything to the server.

When you roll back a configuration, the current configuration in Smart AMS Config will be overwritten. Your changes might be lost!

- To switch to the History section, click in the Navigation Panel on the left of the page. On mobile devices with a smaller screen, click your username in the upper right corner of the page, and then select History.

  The columns in the view are: Timestamp, Description, User Name, Applied, and Recover.

- In the Recover column, click .

Timestamp: Time when the snapshot was created.

Description: Text that was entered when creating the snapshot.

User Name: Shows who created the snapshot.

Applied: Shows whether the snapshot was applied or not.

Recover: Click to roll back the configuration.

# Changing the GUI theme

You must first navigate to Smart AMS Config.

- Go to the Smart AMS Config address in your web browser by using the Open Smart AMS Config UI shortcut on the Desktop or on the Windows Start menu.
  Sample address: http://localhost:6395. Make sure to replace localhost with the actual IP address of the computer Smart AMS Config is running on.

- To switch to the User Management section, click in the Navigation Panel on the left of the page. On mobile devices with a smaller screen, click your username in the upper right corner of the page, and then select User Management.

- In the Theme list, select Bright or Dark.

# Managing user accounts in Smart AMS Config

In the User Management section, you can add user accounts and specify credentials for them.

Only admin users can make changes that affect other users: changing the password, adding and deleting user accounts. Non-admin users can only change their own passwords.

- Go to the Smart AMS Config address in your web browser by using the Open Smart AMS Config UI shortcut on the Desktop or on the Windows Start menu.
  Sample address: http://localhost:6395. Make sure to replace localhost with the actual IP address of the computer Smart AMS Config is running on.

- To switch to the User Management section, click in the Navigation Panel on the left of the page. On mobile devices with a smaller screen, click your username in the upper right corner of the page, and then select User Management.

## Adding new user accounts

- Click .

- Enter your username or that of the user you want to add.

- Enter your password or the password for the new user.

## Changing user password

- In the Change Password column, click .

- Enter the new password.

## Deleting a user account

- In the Remove User column, click .

# Configuration file in Microsoft Excel format

In older versions of Smart AMS, prior to 1.5, all configuration settings, including Global Configurations, Station List, SAMS Recipe List, and Constants were stored in an .xlsx configuration file.

Smart AMS Config has been added since version 1.5. You can import your existing .xlsx configuration file into Smart AMS Config, and then fine-tune the configuration.

You can continue to use .xlsx configuration files in Smart AMS v. 1.5, too.

The Constants worksheet in the configuration file should not be edited.

An .xlsx configuration file, once imported into Smart AMS Config, cannot be exported back.

In this Section

- Global configurations in the .xlsx configuration file
- Settings for stations in the .xlsx configuration file
- Recipe list in the .xlsx configuration file

# Global configurations in the .xlsx configuration file

In the .xlsx configuration file, the Global Configurations worksheet contains global configuration settings for Smart AMS.

## Customer information

Customer Name: Specify the name of the customer.

Plant Name: Specify the name of the plant.

Number of Stations: Specify the number of stations.

## Generic Config

Product Sign-in Override drop-down list: Select FALSE to prevent new product sign-in while another product is in progress. If you select TRUE, then when a new product is signed in, the current product will be signed out and the new product will be signed in at the same time.

Ignore same Product Sign-In drop-down list: Select TRUE to prevent new product sign-in if the product ID is the same as that of the product that was signed in immediately before it. If you select FALSE, then no product ID comparison will be performed. The product will be signed in, and the tightening workflow will start from the beginning.

MNO Strategy drop-down list:
InactiveWorkflow: If all tightening retry attempts in a workstep have failed, the tool will be locked until the current workstep is skipped manually.
ProductAbort: If all tightening retry attempts in a workstep have failed, the product will be signed out automatically.
WorkflowRestart: If all tightening retry attempts in a workstep have failed, the workflow will be restarted from the beginning. This option is the least recommended because the previous tightening results will be discarded and not sent to the MES.
Proceed: If all tightening retry attempts in a workstep have failed, Smart AMS will automatically proceed to the next workstep.

Emergency Result Mode drop-down list:
Static: When in emergency mode, the tool is always enabled. There is no way to enter a product ID. A static identifier "MANUAL" will be used for all results.
OnlyByProductSignIn: The tool is only enabled after a product is signed in. The product ID, with which the product is signed in, will be used for the results.
StaticAndOverwriteByProductSignIn: When in emergency mode, the tool is always enabled. If no product is signed in, a static identifier "MANUAL" will be used for all results. After a product is signed in, the product ID, with which the product has been signed in, will be used for the results.
Passive: Product identification is not under Smart AMS control. For example, if a barcode scanner is attached to the controller, the product ID received from the scanner will be attached to the tightening results. Any product ID received from the controller will not be altered by Smart AMS. If neither scanner nor other input source is specified, the product ID will be empty.

You can use a scanner, connected to the PF6000 controller, for scanning in automatic mode and in the controller's manual mode even when it is not connected to Smart AMS. In this case, the Emergency Result Mode setting must be set to Passive, and the Product Sign-In setting for the PF6000 station must be set to Barcode.
In the settings for PF6000, the scan pass through function needs to be deactivated. Manual mode on the controller should be configured so that it is active when the keyswitch is set to emergency mode.

Emergency Sign In Mode drop-down list:
ByStationSignIn: When in emergency mode, products can be signed in in the same way as when the station is in automatic mode.
ByStationSignInAndBarcodeScanner: Products can be signed in in the same way as when the station is in automatic mode, as well as by barcode scanner. If a product is signed in by using a barcode scanner and there is a PLC configured for the station, Smart AMS will send the scanned code to the PLC. The sequence will be verified on the PLC and then re-aligned, if necessary.
OnlyByBarcodeScanner: Products can only be signed in by using a barcode scanner. If there is a PLC configured for the station, Smart AMS will send the scanned code to the PLC. The sequence will be verified on the PLC and then re-aligned, if necessary.

Product Status Storage Limit: Specifies the maximum number of product status information entries to be stored in the buffer in Smart AMS. Default value: 10000.

Station Dependency drop-down list:
Off: No stations are interlocked. The product can be signed in and processed even if it was signed out in the NOK state from the previous station.
InLineDependency: Within an assembly line, the product can be signed in only if it was signed out in the OK state from the previous station. If the tightening result at a station was NOK, then all the bolts tightened at the station should be loosened, and then the product can be signed in at the same station to rerun the tightenings.
AcrossLineDependency: The product can be signed in only if it was signed out in the OK state from the previous station, even if the previous station belongs to a different assembly line. If the tightening result at a station was NOK, then all the bolts tightened at the station should be loosened, and then the product can be signed in at the same station to rerun the tightenings.

SQS3 rework stations ignore the dependency check, even if it is activated for the assembly line in which they reside.

Reject OK Product Sign-In drop-down list:
TRUE: It will not be possible to sign in a product that has already been processed OK at the same station. When trying to sign in, the green segment will be actuated on the Stack Light connected to the station. The product will not be signed in. However, such a product can still be signed in at the station by an IO signal sent after the detection that the product is already OK. If the product is not detected as already OK, the IO signal will be ignored.
FALSE: It will be possible to sign in a product that has already been processed OK at the same station, regardless of sign-in method.

Product Disconnect Timeout: Specifies the time period, in seconds, to wait until the product is signed out in the event that the connectivity to the controller is lost. If this field is left blank, the product will always be signed out immediately when Smart AMS loses connectivity to the controller. Smart AMS will then wait for a new product sign-in to resume the workflow at the station.

ILT Server Port: Specify the TCP port for connection. Default port: 10458.

Monitoring API: Select TRUE if you want to use the Monitoring API. Otherwise select FALSE to disable this feature and save system resources.

Wait for Tool Stop: Select TRUE in order to have the system wait for all the tools at the station to stop rotating before aborting the workflow and signing out the product. All tightening results generated by the running tools will be reported to the MES. Representative use cases: the "Skip product" button is pressed or another product is signed in. If set to FALSE, the product will always be signed out immediately on detecting the corresponding signal. The system will discard all results for tightenings that were processed after the product sign-out.

## ToolsNet 8 Integration

Report to ToolsNet 8 drop-down list: If you want to connect Smart AMS to the ToolsNet 8 server for downloading the result data (OK, NOK, NYD), select TRUE. Otherwise, select FALSE.

ToolsNet 8 IP: Specify the IP address for connection.

ToolsNet 8 Port: Specify the TCP port for connection. Default port: 7110.

## MES Build Data Config

Use MES Build Data protocol drop-down list: Select TRUE if you want to receive build data from the MES Adapter. Otherwise select FALSE.

Server Port: Specify the TCP port that will be used for receiving the build data. Default port: 8089.

Adapter Name: Enter the name of the MES Adapter from which you want to receive the build data.

## MES Result Config

Use MES Result Adapter drop-down list: Select TRUE if you want to send the result data to the specified MES Adapter. Otherwise select FALSE.

Server Port: Specify the TCP port that will be used for sending the result data. Default port: 8090.

Result Storage Limit: Specifies the maximum number of results to be stored in the buffer in Smart AMS. Default value: 10000.

## MES Result Adapter Name

The list shows MES Adapters that provide result data to the MES.

Adapter No. column: Specify the ordinal position of the Adapter. Examples: 1, 2, 3.

Adapter Name column: Enter the names of the MES Adapters to which you want to send the result data.

## MES Sign In Config

Use these settings to configure the MES sign-in functionality.

Use MES Sign In protocol drop-down list: Select TRUE if your system is configured to sign-in products by using an MES Adapter. Otherwise select FALSE to disable this feature and save system resources.

Server Port: Specify the TCP port that will be used for incoming connections from the MES Sign-In Adapter. Default port: 8091.

Adapter Name column: Enter the name of the MES Sign-In Adapter.

## LineConfig

The list shows assembly lines with PLCs.

Line No. column: Specify the ordinal position of the assembly line. Examples: 1, 2, 3.

Line Name column: Enter the name of the assembly line.

PLC IP: Specify the IP address of the PLC. The same combination of IP address and port can be used on multiple assembly lines.

PLC Port: Specify the TCP port for connection.

Activated drop-down list: Select TRUE to make the PLC active. Otherwise select FALSE to make it inactive. If a PLC is inactive, Smart AMS ignores it.

Protocol drop-down list: Specify which protocol the PLC should follow.

Dependency Check drop-down list: To enable the dependency check within the selected assembly line, select TRUE. In this case, the product can only be signed in at a station in the assembly line if it was signed out in the OK state from the previous station. If you select FALSE, the product can be signed in and processed even if it was signed out in the NOK state from the previous station.
Note that SQS3 rework stations ignore the dependency check, even if it is activated for the assembly line in which they reside.

# Settings for stations in the .xlsx configuration file

In the .xlsx configuration file, go to the Station List worksheet. It contains a list of stations with their settings. Enter your data in the columns.

Station Name: Specify the name of the station.

Line No.: Specify the assembly line to which the station belongs.

Station No.: Specify the ordinal position of the station in the assembly line. Examples: 1, 2, 3.

Station Id: The Line No. and Station No., both written in the same cell, separated by an underscore "_". It must match the station ID that is used in PLC telegrams.

A project cannot contain two or more stations with the same ID.

Node Type: Specify the type of node to provide connectivity. Possible values: Manual, PF4000, PM4000, PF6000, StWrench, IXB, SQS, SQSRework. Use StWrench when the STwrench itself is directly connected to Smart AMS. When the station is not controlled by Smart AMS, select Manual, and then Smart AMS will be ignoring it.

IXB includes both ICB and ITB tool types.

Node IP: Specify the IP address of the controller or SQS3 station.

Node Port: Specify the TCP port for connection. It must be the same as the one specified in the controller. Example: port 4545 is used by default for Open Protocol tools.

Controller Name: Specify the name of the controller for easy identification.

Controller Counter By Station: Specify the number of controllers at the station. The first controller at the station is counted as 1. More controllers are counted sequentially: 2, 3, and so on. When there is no controller at the station, type 0. Example: SQS3 station is used.

Station Description(En): Provide a description for the station in English.

Station Description(Local): Provide a description for the station in your local language.

Emergency Pset / Mode: Specify the number of tightening program to be set in the controller when Smart AMS operates in emergency mode. If the controller, when in emergency mode, is not controlled by Smart AMS then leave the cell blank. Selection can be made by the controller—for example, through a socket selector. Selecting through socket selectors or other methods works even if a tightening program has already been specified. The controller starts with that tightening program, which can then be changed.

Rework Node: The Line No. and Station No. of the corresponding rework station, both written in the same cell, separated by an underscore "_". It must match the station ID that is used in PLC telegrams.

Product Sign-In drop-down list: Specify how to sign in products at the station.
PLC: Products can only be signed in by PLC.
Barcode: Products can only be signed in by barcode scanner.
PLCAndBarcode: Products can only be signed in by either PLC or barcode scanner.
MES: Products can only be signed in by MES.
MESAndBarcode: Products can only be signed in by either MES or barcode scanner.

Activated drop-down list: Select TRUE to make the station active. Otherwise select FALSE to make it inactive. Inactive stations are unavailable for execution of work; Smart AMS ignores them.

Execution Mode drop-down list: In case of multiple tools, it determines the sequence in which the tools operate: parallel or sequential.
In parallel execution mode, if there are multiple tools at the station, the operator or operators may use the tools simultaneously—all tools specified in all recipes for the station will be active simultaneously. For this, select Parallel.
In sequential execution mode, tools can only be used in the order in which the recipes are listed. For this, select Sequential.
If the station is not controlled by Smart AMS, select Uncontrolled. Examples: stations of types SQS and SQSRework. Please note that using this option for a Smart AMS station is identical to using Sequential.

Free Order Mode: Select TRUE to allow the operator to perform tightenings, based on the current recipes, in a sequence as it makes sense to him or her. You may want to use this option if the order of tightening is unimportant. The tightening program, as well as the tightening sequence for bolts, are determined by the socket that the operator selects. Each socket on the socket selector must be assigned a particular tightening program specified on the controller. When set to FALSE, the tightenings can only be performed in a predetermined sequence.

ILT Device IP: Specify the ILT device's IP address.

ILT Tag ID: Specify the identification of the locating tag. You can find it on the tag's sticker.

Traces: To retrieve tightening traces for torque and angle over time, select TRUE. If you don't need traces, select FALSE to disable this feature and save system resources.

Modbus Device IP: Specify the IP address for connection. Only Modbus devices that support the Read Coils (function code 1) and Write Single Coil (function code 5) functions can be used with Smart AMS.

Modbus Input Offset: Specify the address offset for incoming signals.

Modbus Output Offset: Specify the address offset for outgoing signals.

LAN Scanner IP: Specify the IP address for connection. Use this setting if you have a LAN scanner connected to the Smart AMS Server. Otherwise leave this field blank.

LAN Scanner Port: Specify the port for connection. Use this setting if you have a LAN scanner connected to the Smart AMS Server. Otherwise leave this field blank.

Use Pass Through For Scanning: This setting is effective only when the controller type is PF6000 or IXB. When set to TRUE, Smart AMS subscribes to the Pass Through scan events instead of VIN events. This setting must match its counterpart (Pass Through Mode) on the controller. That is, scanners must be configured to have scanned strings passed through to an external system.

# Recipe list in the .xlsx configuration file

The SAMS Recipe List worksheet in the .xlsx configuration file contains a set of specifications for tightening operations.

Station Id: The Line No. and Station No., both written in the same cell, separated by an underscore "_". It must match the station ID that is used in PLC telegrams. The Station IDs specified here must be the ones that are used on the Station List worksheet in the .xlsx configuration file.

Controller Name: Specify the controller to be used. It must be the name that is used on the Station List worksheet in the .xlsx configuration file.

PR Codes: Restrict the recipe to a specific combination of PR Codes. To accept all workpieces, leave this field blank.

PSet(PF) / Mode(PM): Specify the tightening program number.

Bolt Count: Specify the number of bolts that you want tightened using the tightening program specified in the PSet(PF) / Mode(PM) column.

Spindle Count: Specify the number of spindles used with the tool. A wrong number will affect the output data for bolts. In case of multi-spindle tightenings, the spindle count is part of bolt name; otherwise the bolt names will not be correctly mapped to the results. For example, if Bolt Count is set to 3, and Spindle Count is set to 2, this means there are 6 bolts in the configuration.

Bolt Name: Type a bolt name—an arbitrary text string which is a unique identifier of the bolt within all stations and recipes. This is part of outward information for bolts.

Bolt Description: Enter a description for the bolt.

MNO Count: Specify the maximum amount of consecutive NOK retries. The counter is reset to 0 when an OK tightening is performed. It starts counting when a tightening attempt is NOK. For unrestricted number of retries, leave the cell empty.

Area ID: Specify the identification of the ILT area pertaining to the station. The ILT-driven tools at the station will only be enabled when inside the area. If this field is left blank, the tool specified in the recipe will be enabled regardless of its position.

# Troubleshooting and Service

This section provides assistance in troubleshooting problems, should they arise, and contains information to help you maintain and service the product.

In this Section

- Troubleshooting and service overview
- Insufficient licensed features
- Use of static IP addresses
- IP address and port conflicts
- Wi-Fi radio frequency interference
- Barcode is not recognized
- Barcode is recognized as wrong
- Tool fails to start in automatic mode
- Tool fails to start in emergency mode
- Result data for bolts is wrong
- Smart AMS is unable to establish a connection with controller
- Navigating to "localhost:6394" fails

# Troubleshooting and service overview

This section describes solutions to common problems that might be caused by software misconfigurations and hardware failures. Before you contact a service representative, we strongly recommend reading the relevant problem described under this section.

For safe and correct use, be sure to read the safety information in the appropriate tool manual.

You may also need to check a more specific section related to your task:

- For the description of configuration features, please refer to the Configuration section.

- System requirements are detailed in the Introduction section > System Overview subsection.

- Should you need to reinstall the product, follow the instructions in the Installation and Upgrade section.

# Insufficient licensed features

This error occurs when there is a mismatch between the number of features defined in the license and the number of features utilized in the configuration.

Cause | Solution
--- | ---
Spindle count does not match. | Note that having one station in the configuration implies that there is at least one spindle at that station, even if the Spindle Count is not specified. Make sure you have specified the correct number of spindles.

# Use of static IP addresses

You must use static IP addresses for all tools used in Smart AMS. You can configure IP addresses either manually as static ones or by means of DHCP reservations. Use MAC addresses to reserve IP addresses for specific devices.

# IP address and port conflicts

All IP addresses and ports used for connections must be available for both receiving and sending data. Using the same IP address and port for two or more devices will cause a conflict between devices, and systems will fail to communicate with each other.

Do the following to check system network IP protocol:

1. Try to `ping` the relevant IP addresses, and check the HMI's DNS settings if required.

2. Run the `netstat` command. This command will display both incoming and outgoing network connections for a number of network interfaces. It is typically preinstalled on Windows 8 and Windows 10.

If a repeat IP address is identified, contact the site system administrator for assistance.

If no duplicate IP address is found, contact the site system administrator to see if a firewall is blocking the access to the IP addresses and ports.

# Wi-Fi radio frequency interference

Wireless devices such as microwave transmitters, wireless cameras, or a neighbor's Wi-Fi device can cause interference with Wi-Fi connections you use for connecting the equipment to the HMI. It can also occur if you have too many Wi-Fi devices.

Make sure you have a stable Wi-Fi connection by checking the following conditions:

- Check the mounting position of the transmitter/router.

- Reposition other wireless devices around the equipment in question.

- Boost the signal by adding antennas and/or Wi-Fi extenders to increase the range.

- Add a second Wi-Fi router.

# Barcode is not recognized

The scanner might not recognize barcodes for several reasons mentioned in the table below.

Cause | Solution
--- | ---
The scanner is set up for barcode recognition in a format that does not match the actual barcode type. | Even if your scanner is capable of recognizing barcodes in multiple formats, it might be programmatically limited to recognizing only one format at a time. Refer to documentation that comes with the scanner for details on how to specify a barcode format that matches your barcode format.
Barcode parameters were changed, which made the configuration of the scanner obsolete. | Adjust your scanner to recognize new barcodes.
The scanner was replaced due to hardware failure. | Configure the new scanner to recognize the desired barcode format. Refer to documentation that comes with the scanner.
The scanner's configuration became corrupt due to improper shutdown. | Restore the scanner's configuration either manually or from a backup file, if available.
The surface you are scanning the barcode from has a shiny, reflective appearance—for example, like plastic or metals. | Remove the plastic cover.
The barcode is unreadable. | Check the barcode visually. Try recognizing it with another scanner to check whether it is readable.

# Barcode is recognized as wrong

Cause | Solution
--- | ---
The operator scans the barcode from a wrong part. | Make sure the operator is provided with correct parts and that the parts have the correct barcode.
The barcode contains invalid characters. | Barcodes must contain only ASCII characters. Make sure there are no unusable characters in the barcodes that you scan.
The barcode terminator is not set. | Specify the barcode terminator in the scanner's settings. For example, #13#10 stands for <CR><LF> (carriage return, line feed).
The barcode is malformed. | Make sure the barcode complies with the rules of your particular system. For example, all EAN-13 barcodes must contain 13 digits.

# Tool fails to start in automatic mode

Cause | Solution
--- | ---
There is a connectivity problem between the station and Smart AMS. | Identify and resolve any possible network connectivity issues.
Smart AMS is in emergency mode. | Check the status of emergency mode indicator in the stack light, if available. Address the root cause, and then start the station in automatic mode.
Smart AMS is in an error state. The error indicator light is on. | Review the log files for steps that did not succeed, and then take corrective action. Path to log files: %ProgramData%\AMP\. Example: C:\ProgramData\AMP\.
PR Code of the product does not match the expression specified in Smart AMS Config. | Reconfigure the system to accept the barcodes or replace the wrong product with the correct one.
There is a tightening program source selection error. | Check the configuration of the controller, especially the configuration of the tightening program selection source.
Tool's firmware is incompatible. | Check if you have a suitable version of firmware on the tool. In case of a mismatch, flash the recommended firmware.
A firewall is blocking the traffic. A firewall may be built into the operating system and enabled by default. | Check the firewall settings to make sure the tool's IP address and port are available for communication.
The tool has an IP address or port conflict with another tool. | Make sure the IP address and port settings are unique for the tool.

# Tool fails to start in emergency mode

The tool does not start even if the tightening program is set.

Cause | Solution
--- | ---
There is a connectivity problem between the controller and Smart AMS. | Ensure the network connectivity between the controller and Smart AMS. If a network disconnection is detected, restart the controller. If the connection to Smart AMS is normal, review the log files for steps that did not succeed, and then take corrective action. Path to log files: %ProgramData%\AMP\. Example: C:\ProgramData\AMP\.

# Result data for bolts is wrong

Cause | Solution
--- | ---
An incorrect number of spindles was specified. | Verify that the correct number of spindles is specified in the Spindle Count parameter in Smart AMS Config. In case of multi-spindle tightenings, for example, if Tightening Count is set to 3, and Spindle Count is set to 2, this means there are 6 bolts in the configuration.

# Smart AMS is unable to establish a connection with controller

Cause | Solution
--- | ---
Networking is not installed or is not properly configured. | Check your network configuration.
Connection cannot be established because IP addresses or ports are wrong. | Check that the IP address and port number specified in Smart AMS Config match those in the controller.
Smart AMS Manager has stopped responding. | Restart the SAMS service that is listed in Windows services on the computer.

# Navigating to "localhost:6394" fails

Cause | Solution
--- | ---
Smart AMS Manager has stopped responding. | Restart the SAMS service that is listed in Windows services on the computer.
The web browser is not supported. | Use Google Chrome.
A different port number was specified during the installation of Smart AMS. | Instead of using port 6394, use the port number that was specified when installing Smart AMS.

# Reference

In this section, you can find miscellaneous useful information.

In this Section

- Log files
- Combining PR Codes
- TCP/IP communication ports
- IO settings for controllers
- Terms and abbreviations
- Third-party licenses

# Log files

In Smart AMS, each module has its own log file to help you while debugging or searching for information you need.

The default path to the log files is C:\ProgramData\AMP\. Example: C:\ProgramData\AMP\AMPManager\log\amp-manager.service.log, which is the Smart AMS Manager log file.

When analyzing log files, it is recommended that you first check out the date and time the file was last modified.

# Combining PR Codes

PR Codes are module codes for specific parts. Let's consider, for example, motor vehicle parts.

Examples of PR Codes and PR Combinations
Transmission | PR Combination | Engine | PR Combination | Make of car | PR Combination
--- | --- | --- | --- | --- | ---
MQ250-6F | E2J | 1.6L/85kW | MM8 / D4K | Renowned A | K8K
MQ350-6F | E3N | 2L/103kW PD | D3X / D7N | Renowned B | K8C
DQ250-6F | E4S | 2L/110kW | D2T / D2Z | Renowned C | K8P / 7N0 / 7JK
MQ200-6F | E5M | 2L/147kW | D2L |  |
DQ200-7F | E6G | 3.2L/184kW | D6D |  |
MQ500 | E7U | 1.4L/88kW | D23 |  |
|  | 1.4L/92kW | D33 |  |

When combining PR Codes, use the following Boolean operators.

Boolean operators
Designation | Meaning
--- | ---
/ | OR
+ | AND
! | NOT

Use parentheses to combine two or more PR Codes. Place them around a series of PR Codes in an expression to indicate that those PR Codes make up one item within the expression.

If PR Codes contain spaces or other non-alphanumeric characters, enclose the PR Codes in double quotation marks. Please note that the double quotation marks must be escaped with the backslash character as shown in the following example: (Sunroof + \"Five Doors\") / (\"White Color\" + !\"Lane Assistant\").

Examples of using parentheses in PR Combinations
PR Combination | Meaning
--- | ---
(K8P / 7N0 / 7JK) + (E7U + (D23 / D33)) | Renowned C make AND (MQ500 gearbox AND (88kW OR 92kW engine))
K8C + (E5M / E6G) | Renowned B make AND (MQ200-6F OR DQ200-7F transmission)

# TCP/IP communication ports

System components are pre-configured for using default ports. Any of the ports might need to be reconfigured to eliminate conflicts, depending on your particular hardware and software configurations.

In Open Protocol tools, the tool itself acts as a server.

Component | Default configuration path | Default port
--- | --- | ---
FlexNet > Error Proofing License Manager web interface | C:\LLM\LLM\apache-tomcat-9.0.36\conf\server.xml | 8082
FlexNet > License server listening port | Error Proofing License Manager > Settings | 7070
ILT server port | Smart AMS Config > General > Advanced | 10458
MES build data port | Smart AMS Config > General > MES | 8089
MES result data port | Smart AMS Config > General > MES | 8090
MES sign-in port | Smart AMS Config > General > MES | 8091
Open Protocol tool | Smart AMS Config > select the station > Controllers | 4545
PLC | Smart AMS Config > select the station > Controllers | 8001
RabbitMQ listening port | Specified in RabbitMQ. | 5672
Smart AMS Manager | Specified during the installation of Smart AMS. | 6394
Smart AMS Config | Hardcoded. | 6395

# IO settings for controllers

## Smart AMS output (from Smart AMS to controller)

Corresponding Smart AMS IO | PF4000 variable | PM4000 variable (settings in PLC) | PF6000 variable | Modbus Device
--- | --- | --- | --- | ---
Emergency mode | External controlled 1 | %IX 13000.0 | Generic IO 1 | First input bit
Product OK | External controlled 2 | %IX 13000.1 | Generic IO 2 | Second input bit
Product NOK | External controlled 3 | %IX 13000.2 | Generic IO 3 | Third input bit
Product running | External controlled 4 | %IX 13000.3 | Generic IO 4 | Fourth input bit
System error | External controlled 5 | %IX 13000.4 | Generic IO 5 | Fifth input bit

## Smart AMS input (from controller to Smart AMS)

Corresponding Smart AMS IO | PF4000 variable | PM4000 variable (settings in PLC) | PF6000 variable | Modbus Device
--- | --- | --- | --- | ---
Emergency mode | External monitored 1 | %QX 13000.0 | External monitored 1 | First output bit
Skip product | External monitored 2 | %QX 13000.1 | External monitored 2 | Second output bit
Skip step | External monitored 3 | %QX 13000.2 | External monitored 3 | Third output bit
Override OK status | External monitored 4 | %QX 13000.3 | External monitored 4 | Fourth output bit

# Terms and abbreviations

Letter | Term | Description
--- | --- | ---
A | AMP | Assembly Management Platform
| AMS | Assembly Management System
I | ICB | Integrated controller, Compact transducerized range, Battery
| ILT | Industrial Location Tethering
| ITB | Integrated controller, Transducerized range, Battery
| IXB | Collective name for ICB and ITB
M | MES | Manufacturing Execution System
| MNO | Maximum number of not OK
N | NOK | Not OK
| NYD | Not yet done
P | PLC | Programmable logic controller
| PR Code | Product property code
| PSet | Tightening program
S | SAMS | Smart AMS, Smart Assembly Management System
| SQS | Scalable Quality Solution

# Third-party licenses

This section refers to license information for certain third-party components included with Smart AMS.

In this Section

- List of third-party software
- Academic Free License v.2.1
- Apache software license, version 2.0
- Zero-Clause BSD (0BSD)
- BSD 2-clause "Simplified" license
- BSD 3-clause "Modified" license
- BSD 4-clause "Original" license
- Creative Commons CC0 1.0 Universal
- Creative Commons Attribution-ShareAlike 2.0
- Creative Commons Attribution-ShareAlike 3.0 Unported License
- Creative Commons Attribution 4.0 International Public License
- GNU General Public License, GPL V2
- ISC license
- Inno Setup License
- MIT license (MIT)
- MICROSOFT SOFTWARE LICENSE TERMS
- Mozilla Public License
- ODC Attribution License (ODC-By)
- Unlicense
- zlib License

# List of third-party software

The following third-party software items are included in Smart AMS.

Third-party software
Software | Version | License
--- | --- | ---
@babel/code-frame | 7.10.4 | MIT
@babel/compat-data | 7.12.7 | MIT
@babel/core | 7.12.3 | MIT
@babel/generator | 7.12.5 | MIT
@babel/helper-annotate-as-pure | 7.10.4 | MIT
@babel/helper-builder-binary-assignment-operator-visitor | 7.10.4 | MIT
@babel/helper-builder-react-jsx | 7.10.4 | MIT
@babel/helper-builder-react-jsx-experimental | 7.12.4 | MIT
@babel/helper-compilation-targets | 7.12.5 | MIT
@babel/helper-create-class-features-plugin | 7.12.1 | MIT
@babel/helper-create-regexp-features-plugin | 7.12.7 | MIT
@babel/helper-define-map | 7.10.5 | MIT
@babel/helper-explode-assignable-expression | 7.12.1 | MIT
@babel/helper-function-name | 7.10.4 | MIT
@babel/helper-get-function-arity | 7.10.4 | MIT
@babel/helper-hoist-variables | 7.10.4 | MIT
@babel/helper-member-expression-to-functions | 7.12.7 | MIT
@babel/helper-module-imports | 7.12.5 | MIT
@babel/helper-module-transforms | 7.12.1 | MIT
@babel/helper-optimise-call-expression | 7.12.7 | MIT
@babel/helper-plugin-utils | 7.10.4 | MIT
@babel/helper-remap-async-to-generator | 7.12.1 | MIT
@babel/helper-replace-supers | 7.12.5 | MIT
@babel/helpers | 7.12.5 | MIT
@babel/helper-simple-access | 7.12.1 | MIT
@babel/helper-skip-transparent-expression-wrappers | 7.12.1 | MIT
@babel/helper-split-export-declaration | 7.11.0 | MIT
@babel/helper-validator-identifier | 7.10.4 | MIT
@babel/helper-validator-option | 7.12.1 | MIT
@babel/helper-wrap-function | 7.12.3 | MIT
@babel/highlight | 7.10.4 | MIT
@babel/parser | 7.12.7 | MIT
@babel/plugin-proposal-async-generator-functions | 7.12.1 | MIT
@babel/plugin-proposal-class-properties | 7.12.1 | MIT
@babel/plugin-proposal-decorators | 7.12.1 | MIT
@babel/plugin-proposal-dynamic-import | 7.12.1 | MIT
@babel/plugin-proposal-export-namespace-from | 7.12.1 | MIT
@babel/plugin-proposal-json-strings | 7.12.1 | MIT
@babel/plugin-proposal-logical-assignment-operators | 7.12.1 | MIT
@babel/plugin-proposal-nullish-coalescing-operator | 7.12.1 | MIT
@babel/plugin-proposal-numeric-separator | 7.12.1 | MIT
@babel/plugin-proposal-numeric-separator | 7.12.7 | MIT
@babel/plugin-proposal-object-rest-spread | 7.12.1 | MIT
@babel/plugin-proposal-optional-catch-binding | 7.12.1 | MIT
@babel/plugin-proposal-optional-chaining | 7.12.1 | MIT
@babel/plugin-proposal-optional-chaining | 7.12.7 | MIT
@babel/plugin-proposal-private-methods | 7.12.1 | MIT
@babel/plugin-proposal-unicode-property-regex | 7.12.1 | MIT
@babel/plugin-syntax-async-generators | 7.8.4 | MIT
@babel/plugin-syntax-bigint | 7.8.3 | MIT
@babel/plugin-syntax-class-properties | 7.12.1 | MIT
@babel/plugin-syntax-decorators | 7.12.1 | MIT
@babel/plugin-syntax-dynamic-import | 7.8.3 | MIT
@babel/plugin-syntax-export-namespace-from | 7.8.3 | MIT
@babel/plugin-syntax-flow | 7.12.1 | MIT
@babel/plugin-syntax-import-meta | 7.10.4 | MIT
@babel/plugin-syntax-json-strings | 7.8.3 | MIT
@babel/plugin-syntax-jsx | 7.12.1 | MIT
@babel/plugin-syntax-logical-assignment-operators | 7.10.4 | MIT
@babel/plugin-syntax-nullish-coalescing-operator | 7.8.3 | MIT
@babel/plugin-syntax-numeric-separator | 7.10.4 | MIT
@babel/plugin-syntax-object-rest-spread | 7.8.3 | MIT
@babel/plugin-syntax-optional-catch-binding | 7.8.3 | MIT
@babel/plugin-syntax-optional-chaining | 7.8.3 | MIT
@babel/plugin-syntax-top-level-await | 7.12.1 | MIT
@babel/plugin-syntax-typescript | 7.12.1 | MIT
@babel/plugin-transform-arrow-functions | 7.12.1 | MIT
@babel/plugin-transform-async-to-generator | 7.12.1 | MIT
@babel/plugin-transform-block-scoped-functions | 7.12.1 | MIT
@babel/plugin-transform-block-scoping | 7.12.1 | MIT
@babel/plugin-transform-classes | 7.12.1 | MIT
@babel/plugin-transform-computed-properties | 7.12.1 | MIT
@babel/plugin-transform-destructuring | 7.12.1 | MIT
@babel/plugin-transform-dotall-regex | 7.12.1 | MIT
@babel/plugin-transform-duplicate-keys | 7.12.1 | MIT
@babel/plugin-transform-exponentiation-operator | 7.12.1 | MIT
@babel/plugin-transform-flow-strip-types | 7.12.1 | MIT
@babel/plugin-transform-for-of | 7.12.1 | MIT
@babel/plugin-transform-function-name | 7.12.1 | MIT
@babel/plugin-transform-literals | 7.12.1 | MIT
@babel/plugin-transform-member-expression-literals | 7.12.1 | MIT
@babel/plugin-transform-modules-amd | 7.12.1 | MIT
@babel/plugin-transform-modules-commonjs | 7.12.1 | MIT
@babel/plugin-transform-modules-systemjs | 7.12.1 | MIT
@babel/plugin-transform-modules-umd | 7.12.1 | MIT
@babel/plugin-transform-named-capturing-groups-regex | 7.12.1 | MIT
@babel/plugin-transform-new-target | 7.12.1 | MIT
@babel/plugin-transform-object-super | 7.12.1 | MIT
@babel/plugin-transform-parameters | 7.12.1 | MIT
@babel/plugin-transform-property-literals | 7.12.1 | MIT
@babel/plugin-transform-react-constant-elements | 7.12.1 | MIT
@babel/plugin-transform-react-display-name | 7.12.1 | MIT
@babel/plugin-transform-react-jsx | 7.12.7 | MIT
@babel/plugin-transform-react-jsx-development | 7.12.7 | MIT
@babel/plugin-transform-react-jsx-self | 7.12.1 | MIT
@babel/plugin-transform-react-jsx-source | 7.12.1 | MIT
@babel/plugin-transform-react-pure-annotations | 7.12.1 | MIT
@babel/plugin-transform-regenerator | 7.12.1 | MIT
@babel/plugin-transform-reserved-words | 7.12.1 | MIT
@babel/plugin-transform-runtime | 7.12.1 | MIT
@babel/plugin-transform-shorthand-properties | 7.12.1 | MIT
@babel/plugin-transform-spread | 7.12.1 | MIT
@babel/plugin-transform-sticky-regex | 7.12.7 | MIT
@babel/plugin-transform-template-literals | 7.12.1 | MIT
@babel/plugin-transform-typeof-symbol | 7.12.1 | MIT
@babel/plugin-transform-typescript | 7.12.1 | MIT
@babel/plugin-transform-unicode-escapes | 7.12.1 | MIT
@babel/plugin-transform-unicode-regex | 7.12.1 | MIT
@babel/preset-env | 7.12.1 | MIT
@babel/preset-env | 7.12.7 | MIT
@babel/preset-modules | 0.1.4 | MIT
@babel/preset-react | 7.12.1 | MIT
@babel/preset-react | 7.12.7 | MIT
@babel/preset-typescript | 7.12.1 | MIT
@babel/runtime | 7.12.1 | MIT
@babel/runtime | 7.12.5 | MIT
@babel/runtime | 7.8.7 | MIT
@babel/runtime-corejs3 | 7.12.5 | MIT
@babel/template | 7.12.7 | MIT
@babel/traverse | 7.12.9 | MIT
@babel/types | 7.12.7 | MIT
@bcoe/v8-coverage | 0.2.3 | MIT
@cnakazawa/watch | 1.0.4 | Apache-2.0
@csstools/convert-colors | 1.4.0 | CC0-1.0
@csstools/normalize.css | 10.1.0 | CC0-1.0
@dnd-kit/accessibility | 2.0.0 | MIT
@dnd-kit/core | 2.1.2 | MIT
@dnd-kit/sortable | 2.0.1 | MIT
@dnd-kit/utilities | 1.0.3 | MIT
@eslint/eslintrc | 0.2.2 | MIT
@hapi/address | 2.1.4 | BSD 3-clause
@hapi/bourne | 1.3.2 | BSD 3-clause
@hapi/hoek | 8.5.1 | BSD 3-clause
@hapi/joi | 15.1.1 | BSD 3-clause
@hapi/topo | 3.1.6 | BSD 3-clause
@hypnosphi/create-react-context | 0.3.1 | MIT
@istanbuljs/load-nyc-config | 1.1.0 | ISC
@istanbuljs/schema | 0.1.2 | MIT
@jest/console | 26.6.2 | MIT
@jest/core | 26.6.3 | MIT
@jest/environment | 26.6.2 | MIT
@jest/fake-timers | 26.6.2 | MIT
@jest/globals | 26.6.2 | MIT
@jest/reporters | 26.6.2 | MIT
@jest/source-map | 26.6.2 | MIT
@jest/test-result | 26.6.2 | MIT
@jest/test-sequencer | 26.6.3 | MIT
@jest/transform | 26.6.2 | MIT
@jest/types | 26.6.2 | MIT
@nodelib/fs.scandir | 2.1.3 | MIT
@nodelib/fs.stat | 2.0.3 | MIT
@nodelib/fs.walk | 1.2.4 | MIT
@npmcli/move-file | 1.0.1 | MIT
@pmmmwh/react-refresh-webpack-plugin | 0.4.2 | MIT
@rollup/plugin-node-resolve | 7.1.3 | MIT
@rollup/plugin-replace | 2.3.4 | MIT
@rollup/pluginutils | 3.1.0 | MIT
@sinonjs/commons | 1.8.1 | BSD 3-clause
@sinonjs/fake-timers | 6.0.1 | BSD 3-clause
@surma/rollup-plugin-off-main-thread | 1.4.2 | Apache-2.0
@svgr/babel-plugin-add-jsx-attribute | 5.4.0 | MIT
@svgr/babel-plugin-remove-jsx-attribute | 5.4.0 | MIT
@svgr/babel-plugin-remove-jsx-empty-expression | 5.0.1 | MIT
@svgr/babel-plugin-replace-jsx-attribute-value | 5.0.1 | MIT
@svgr/babel-plugin-svg-dynamic-title | 5.4.0 | MIT
@svgr/babel-plugin-svg-em-dimensions | 5.4.0 | MIT
@svgr/babel-plugin-transform-react-native-svg | 5.4.0 | MIT
@svgr/babel-plugin-transform-svg-component | 5.5.0 | MIT
@svgr/babel-preset | 5.5.0 | MIT
@svgr/core | 5.5.0 | MIT
@svgr/hast-util-to-babel-ast | 5.5.0 | MIT
@svgr/plugin-jsx | 5.5.0 | MIT
@svgr/plugin-svgo | 5.5.0 | MIT
@svgr/webpack | 5.4.0 | MIT
@testing-library/dom | 7.28.1 | MIT
@testing-library/jest-dom | 5.11.6 | MIT
@testing-library/react | 11.2.2 | MIT
@testing-library/user-event | 12.5.0 | MIT
@types/anymatch | 1.3.1 | MIT
@types/aria-query | 4.2.0 | MIT
@types/babel__core | 7.1.12 | MIT
@types/babel__generator | 7.6.2 | MIT
@types/babel__template | 7.4.0 | MIT
@types/babel__traverse | 7.0.16 | MIT
@types/eslint | 7.2.6 | MIT
@types/estree | 0.0.39 | MIT
@types/estree | 0.0.45 | MIT
@types/glob | 7.1.3 | MIT
@types/graceful-fs | 4.1.4 | MIT
@types/html-minifier-terser | 5.1.1 | MIT
@types/istanbul-lib-coverage | 2.0.3 | MIT
@types/istanbul-lib-report | 3.0.0 | MIT
@types/istanbul-reports | 3.0.0 | MIT
@types/jest | 26.0.17 | MIT
@types/json5 | 0.0.29 | MIT
@types/json-schema | 7.0.6 | MIT
@types/minimatch | 3.0.3 | MIT
@types/node | 13.7.7 | MIT
@types/node | 14.14.10 | MIT
@types/normalize-package-data | 2.4.0 | MIT
@types/parse-json | 4.0.0 | MIT
@types/prettier | 2.1.5 | MIT
@types/prop-types | 15.7.3 | MIT
@types/q | 1.5.4 | MIT
@types/react | 16.9.55 | MIT
@types/resolve | 0.0.8 | MIT
@types/source-list-map | 0.1.2 | MIT
@types/stack-utils | 2.0.0 | MIT
@types/tapable | 1.0.6 | MIT
@types/testing-library__jest-dom | 5.9.5 | MIT
@types/uglify-js | 3.11.1 | MIT
@types/webpack | 4.41.25 | MIT
@types/webpack-sources | 2.1.0 | MIT
@types/yargs | 15.0.11 | MIT
@types/yargs-parser | 15.0.0 | MIT
@typescript-eslint/eslint-plugin | 4.9.1 | MIT
@typescript-eslint/experimental-utils | 3.10.1 | MIT
@typescript-eslint/experimental-utils | 4.9.1 | MIT
@typescript-eslint/parser | 4.9.1 | BSD 2-clause
@typescript-eslint/scope-manager | 4.9.1 | MIT
@typescript-eslint/types | 3.10.1 | MIT
@typescript-eslint/types | 4.9.1 | MIT
@typescript-eslint/typescript-estree | 3.10.1 | BSD 2-clause
@typescript-eslint/typescript-estree | 4.9.1 | BSD 2-clause
@typescript-eslint/visitor-keys | 3.10.1 | MIT
@typescript-eslint/visitor-keys | 4.9.1 | MIT
@webassemblyjs/ast | 1.9.0 | MIT
@webassemblyjs/floating-point-hex-parser | 1.9.0 | MIT
@webassemblyjs/helper-api-error | 1.9.0 | MIT
@webassemblyjs/helper-buffer | 1.9.0 | MIT
@webassemblyjs/helper-code-frame | 1.9.0 | MIT
@webassemblyjs/helper-fsm | 1.9.0 | ISC
@webassemblyjs/helper-module-context | 1.9.0 | MIT
@webassemblyjs/helper-wasm-bytecode | 1.9.0 | MIT
@webassemblyjs/helper-wasm-section | 1.9.0 | MIT
@webassemblyjs/ieee754 | 1.9.0 | MIT
@webassemblyjs/leb128 | 1.9.0 | MIT
@webassemblyjs/utf8 | 1.9.0 | MIT
@webassemblyjs/wasm-edit | 1.9.0 | MIT
@webassemblyjs/wasm-gen | 1.9.0 | MIT
@webassemblyjs/wasm-opt | 1.9.0 | MIT
@webassemblyjs/wasm-parser | 1.9.0 | MIT
@webassemblyjs/wast-parser | 1.9.0 | MIT
@webassemblyjs/wast-printer | 1.9.0 | MIT
@xtuc/ieee754 | 1.2.0 | BSD 3-clause
@xtuc/long | 4.2.2 | Apache-2.0
abab | 2.0.5 | BSD 3-clause
abbrev | 1.1.1 | ISC
accepts | 1.3.7 | MIT
acorn | 6.4.2 | MIT
acorn | 7.4.1 | MIT
acorn-globals | 6.0.0 | MIT
acorn-jsx | 5.3.1 | MIT
acorn-walk | 7.2.0 | MIT
address | 1.1.2 | MIT
adjust-sourcemap-loader | 3.0.0 | MIT
after | 0.8.2 | MIT
aggregate-error | 3.1.0 | MIT
ajv | 6.12.0 | MIT
ajv | 6.12.6 | MIT
ajv-errors | 1.0.1 | MIT
ajv-keywords | 3.5.2 | MIT
alphanum-sort | 1.0.2 | MIT
amdefine | 1.0.1 | BSD 3-clause or MIT
amqplib | 0.5.5 | MIT
ansi-colors | 3.2.4 | MIT
ansi-colors | 4.1.1 | MIT
ansi-escapes | 4.3.1 | MIT
ansi-html | 0.0.7 | Apache-2.0
ansi-regex | 2.1.1 | MIT
ansi-regex | 3.0.0 | MIT
ansi-regex | 4.1.0 | MIT
ansi-regex | 5.0.0 | MIT
ansi-styles | 2.2.1 | MIT
ansi-styles | 3.2.1 | MIT
ansi-styles | 4.3.0 | MIT
anymatch | 2.0.0 | ISC
anymatch | 3.1.1 | ISC
any-promise | 1.3.0 | MIT
aproba | 1.2.0 | ISC
are-we-there-yet | 1.1.5 | ISC
argparse | 1.0.10 | MIT
aria-query | 4.2.2 | Apache-2.0
arity-n | 1.0.4 | MIT
array.prototype.flat | 1.2.4 | MIT
array.prototype.flatmap | 1.2.4 | MIT
arraybuffer.slice | 0.0.7 | MIT
array-find-index | 1.0.2 | MIT
array-flatten | 1.1.1 | MIT
array-flatten | 2.1.2 | MIT
array-includes | 3.1.2 | MIT
array-union | 1.0.2 | MIT
array-union | 2.1.0 | MIT
array-uniq | 1.0.3 | MIT
array-unique | 0.3.2 | MIT
arr-diff | 4.0.0 | MIT
arr-flatten | 1.1.0 | MIT
arrify | 2.0.1 | MIT
arr-union | 3.1.0 | MIT
asap | 2.0.6 | MIT
asn1 | 0.2.4 | MIT
asn1.js | 5.4.1 | MIT
assert | 1.5.0 | MIT
assert-plus | 1.0.0 | MIT
assign-symbols | 1.0.0 | MIT
astral-regex | 1.0.0 | MIT
ast-types-flow | 0.0.7 | ISC
async | 2.6.3 | MIT
async-each | 1.0.3 | MIT
async-foreach | 0.1.3 | MIT
asynckit | 0.4.0 | MIT
async-limiter | 1.0.1 | MIT
at-least-node | 1.0.0 | ISC
atob | 2.1.2 | MIT or Apache-2.0
autoprefixer | 9.8.6 | MIT
aws4 | 1.11.0 | MIT
aws4 | 1.9.1 | MIT
aws-sign2 | 0.7.0 | Apache-2.0
axe-core | 4.1.1 | MPL-2.0
axios | 0.19.2 | MIT
axios | 0.21.1 | MIT
axobject-query | 2.2.0 | Apache-2.0
babel-eslint | 10.1.0 | MIT
babel-extract-comments | 1.0.0 | MIT
babel-jest | 26.6.3 | MIT
babel-loader | 8.1.0 | MIT
babel-plugin-dynamic-import-node | 2.3.3 | MIT
babel-plugin-istanbul | 6.0.0 | BSD 3-clause
babel-plugin-jest-hoist | 26.6.2 | MIT
babel-plugin-macros | 2.8.0 | MIT
babel-plugin-named-asset-import | 0.3.7 | MIT
babel-plugin-syntax-object-rest-spread | 6.13.0 | MIT
babel-plugin-transform-object-rest-spread | 6.26.0 | MIT
babel-plugin-transform-react-remove-prop-types | 0.4.24 | MIT
babel-preset-current-node-syntax | 1.0.0 | MIT
babel-preset-jest | 26.6.2 | MIT
babel-preset-react-app | 10.0.0 | MIT
babel-runtime | 6.26.0 | MIT
babylon | 6.18.0 | MIT
backo2 | 1.0.2 | MIT
balanced-match | 1.0.0 | MIT
base | 0.11.2 | MIT
base64-arraybuffer | 0.1.4 | MIT
base64-arraybuffer | 0.1.5 | MIT
base64id | 2.0.0 | MIT
base64-js | 1.5.1 | MIT
batch | 0.6.1 | MIT
bcrypt-pbkdf | 1.0.2 | BSD 3-clause
better-assert | 1.0.2 | MIT
bfj | 7.0.2 | MIT
big.js | 5.2.2 | MIT
binary-extensions | 1.13.1 | MIT
binary-extensions | 2.1.0 | MIT
bitsyntax | 0.1.0 | MIT
blob | 0.0.5 | MIT
block-stream | 0.0.9 | ISC
bluebird | 3.7.2 | MIT
bn.js | 4.11.9 | MIT
bn.js | 5.1.3 | MIT
body-parser | 1.19.0 | MIT
bonjour | 3.5.0 | MIT
boolbase | 1.0.0 | ISC
bootstrap | 4.5.3 | MIT
brace-expansion | 1.1.11 | MIT
braces | 2.3.2 | MIT
braces | 3.0.2 | MIT
brorand | 1.1.0 | MIT
browserify-aes | 1.2.0 | MIT
browserify-cipher | 1.0.1 | MIT
browserify-des | 1.0.2 | MIT
browserify-rsa | 4.1.0 | MIT
browserify-sign | 4.2.1 | ISC
browserify-zlib | 0.2.0 | MIT
browser-process-hrtime | 1.0.0 | BSD 2-clause
browserslist | 4.14.2 | MIT
browserslist | 4.15.0 | MIT
bser | 2.1.1 | Apache-2.0
buffer | 4.9.2 | MIT
buffer-equal-constant-time | 1.0.1 | BSD 3-clause
buffer-from | 1.1.1 | MIT
buffer-indexof | 1.1.1 | MIT
buffer-more-ints | 1.0.0 | MIT
buffer-xor | 1.0.3 | MIT
builtin-modules | 3.1.0 | MIT
builtin-status-codes | 3.0.0 | MIT
bytes | 3.0.0 | MIT
bytes | 3.1.0 | MIT
cacache | 12.0.4 | ISC
cacache | 15.0.5 | ISC
cache-base | 1.0.1 | MIT
call-bind | 1.0.0 | MIT
caller-callsite | 2.0.0 | MIT
caller-path | 2.0.0 | MIT
callsite | 1.0.0 | MIT
callsites | 2.0.0 | MIT
callsites | 3.1.0 | MIT
camelcase | 2.1.1 | MIT
camelcase | 5.3.1 | MIT
camelcase | 6.2.0 | MIT
camel-case | 4.1.2 | MIT
camelcase-keys | 2.1.0 | MIT
caniuse-api | 3.0.0 | MIT
caniuse-lite | 1.0.30001165 | CC-BY-4.0
capture-exit | 2.0.0 | ISC
caseless | 0.12.0 | Apache-2.0
case-sensitive-paths-webpack-plugin | 2.3.0 | MIT
chalk | 1.1.3 | MIT
chalk | 2.4.2 | MIT
chalk | 3.0.0 | MIT
chalk | 4.1.0 | MIT
char-regex | 1.0.2 | MIT
check-types | 11.1.2 | MIT
chokidar | 2.1.8 | MIT
chokidar | 3.4.3 | MIT
chownr | 1.1.4 | ISC
chownr | 2.0.0 | ISC
chrome-trace-event | 1.0.2 | MIT
ci-info | 2.0.0 | MIT
cipher-base | 1.0.4 | MIT
cjs-module-lexer | 0.6.0 | MIT
classnames | 2.2.6 | MIT
classnames | 2.3.1 | MIT
class-utils | 0.3.6 | MIT
clean-css | 4.2.3 | MIT
clean-stack | 2.2.0 | MIT
cliui | 5.0.0 | ISC
cliui | 6.0.0 | ISC
clone-deep | 4.0.1 | MIT
cls-bluebird | 2.1.0 | BSD 2-clause
co | 4.6.0 | MIT
coa | 2.0.2 | MIT
code-point-at | 1.1.0 | MIT
collection-visit | 1.0.0 | MIT
collect-v8-coverage | 1.0.1 | MIT
color | 3.1.3 | MIT
color-convert | 1.9.3 | MIT
color-convert | 2.0.1 | MIT
colorette | 1.2.1 | MIT
color-name | 1.1.3 | MIT
color-name | 1.1.4 | MIT
color-string | 1.5.4 | MIT
combined-stream | 1.0.8 | MIT
commander | 2.20.3 | MIT
commander | 4.1.1 | MIT
commondir | 1.0.1 | MIT
common-tags | 1.8.0 | MIT
component-bind | 1.0.0 | MIT
component-emitter | 1.2.1 | MIT
component-emitter | 1.3.0 | MIT
component-inherit | 0.0.3 | MIT
compose-function | 3.0.3 | MIT
compressible | 2.0.18 | MIT
compression | 1.7.4 | MIT
concat-map | 0.0.1 | MIT
concat-stream | 1.6.2 | MIT
confusing-browser-globals | 1.0.10 | MIT
connected-react-router | 6.8.0 | MIT
connect-history-api-fallback | 1.6.0 | MIT
console-browserify | 1.2.0 | MIT
console-control-strings | 1.1.0 | ISC
constants-browserify | 1.0.0 | MIT
contains-path | 0.1.0 | MIT
content-disposition | 0.5.3 | MIT
content-type | 1.0.4 | MIT
convert-source-map | 0.3.5 | MIT
convert-source-map | 1.7.0 | MIT
cookie | 0.3.1 | MIT
cookie | 0.4.0 | MIT
cookie-signature | 1.0.6 | MIT
copy-concurrently | 1.0.5 | ISC
copy-descriptor | 0.1.1 | MIT
core-js | 2.6.12 | MIT
core-js | 3.8.1 | MIT
core-js-compat | 3.8.1 | MIT
core-js-pure | 3.8.1 | MIT
core-util-is | 1.0.2 | MIT
cors | 2.8.5 | MIT
cosmiconfig | 5.2.1 | MIT
cosmiconfig | 6.0.0 | MIT
cosmiconfig | 7.0.0 | MIT
create-ecdh | 4.0.4 | MIT
create-hash | 1.2.0 | MIT
create-hmac | 1.1.7 | MIT
create-react-context | 0.3.0 | MIT
cross-spawn | 3.0.1 | MIT
cross-spawn | 6.0.5 | MIT
cross-spawn | 7.0.3 | MIT
crypto-browserify | 3.12.0 | MIT
crypto-random-string | 1.0.0 | MIT
css | 2.2.4 | MIT
css | 3.0.0 | MIT
css.escape | 1.5.1 | MIT
css-blank-pseudo | 0.1.4 | CC0-1.0
css-color-names | 0.0.4 | MIT
cssdb | 4.4.0 | CC0-1.0
css-declaration-sorter | 4.0.1 | MIT
cssesc | 2.0.0 | MIT
cssesc | 3.0.0 | MIT
css-has-pseudo | 0.10.0 | CC0-1.0
css-loader | 4.3.0 | MIT
cssnano | 4.1.10 | MIT
cssnano-preset-default | 4.0.7 | MIT
cssnano-util-get-arguments | 4.0.0 | MIT
cssnano-util-get-match | 4.0.0 | MIT
cssnano-util-raw-cache | 4.0.1 | MIT
cssnano-util-same-parent | 4.0.1 | MIT
csso | 4.2.0 | MIT
cssom | 0.3.8 | MIT
cssom | 0.4.4 | MIT
css-prefers-color-scheme | 3.1.1 | CC0-1.0
css-select | 1.2.0 | BSD
css-select | 2.1.0 | BSD 2-clause
css-select-base-adapter | 0.1.1 | MIT
cssstyle | 2.3.0 | MIT
css-tree | 1.0.0-alpha.37 | MIT
css-tree | 1.1.2 | MIT
csstype | 3.0.4 | MIT
css-what | 2.1.3 | BSD 2-clause
css-what | 3.4.2 | BSD 2-clause
currently-unhandled | 0.4.1 | MIT
cyclist | 1.0.1 | MIT
d | 1.0.1 | ISC
damerau-levenshtein | 1.0.6 | BSD 2-clause
dashdash | 1.14.1 | MIT
data-urls | 2.0.0 | MIT
date-arithmetic | 3.1.0 | MIT
date-fns | 2.16.1 | MIT
date-format | 2.1.0 | MIT
date-format | 3.0.0 | MIT
debug | 2.6.9 | MIT
debug | 3.1.0 | MIT
debug | 3.2.6 | MIT
debug | 3.2.7 | MIT
debug | 4.1.1 | MIT
debug | 4.3.1 | MIT
decamelize | 1.2.0 | MIT
decimal.js | 10.2.1 | MIT
decode-uri-component | 0.2.0 | MIT
dedent | 0.7.0 | MIT
deep-equal | 1.1.1 | MIT
deep-extend | 0.6.0 | MIT
deep-is | 0.1.3 | MIT
deepmerge | 4.2.2 | MIT
default-gateway | 4.2.0 | BSD 2-clause
define-properties | 1.1.3 | MIT
define-property | 0.2.5 | MIT
define-property | 1.0.0 | MIT
define-property | 2.0.2 | MIT
del | 4.1.1 | MIT
delayed-stream | 1.0.0 | MIT
delegates | 1.0.0 | MIT
depd | 1.1.2 | MIT
des.js | 1.0.1 | MIT
destroy | 1.0.4 | MIT
detect-libc | 1.0.3 | Apache-2.0
detect-newline | 3.1.0 | MIT
detect-node | 2.0.4 | ISC
detect-port-alt | 1.1.6 | MIT
diffie-hellman | 5.0.3 | MIT
diff-sequences | 26.6.2 | MIT
direct-styled | 1.0.1 | MIT
dir-glob | 3.0.1 | MIT
dns-equal | 1.0.0 | MIT
dns-packet | 1.3.1 | MIT
dns-txt | 2.0.2 | MIT
doctrine | 1.5.0 | BSD
doctrine | 2.1.0 | Apache-2.0
doctrine | 3.0.0 | Apache-2.0
dom-accessibility-api | 0.5.4 | MIT
domain-browser | 1.2.0 | MIT
dom-converter | 0.2.0 | MIT
domelementtype | 1.3.1 | BSD 2-clause
domelementtype | 2.1.0 | BSD 2-clause
domexception | 2.0.1 | MIT
domhandler | 2.4.2 | BSD 2-clause
dom-helpers | 3.4.0 | MIT
dom-serializer | 0.2.2 | MIT
domutils | 1.5.1 | BSD
domutils | 1.7.0 | BSD 2-clause
dot-case | 3.0.4 | MIT
dotenv | 8.2.0 | BSD 2-clause
dotenv-expand | 5.1.0 | BSD 2-clause
DotNetCore.NPOI | 1.2.1 | Apache-2.0
dot-prop | 5.3.0 | MIT
dottie | 2.0.2 | MIT
duplexer | 0.1.2 | MIT
duplexify | 3.7.1 | MIT
ecc-jsbn | 0.1.2 | MIT
ecdsa-sig-formatter | 1.0.11 | Apache-2.0
ee-first | 1.1.1 | MIT
ejs | 2.7.4 | Apache-2.0
electron-to-chromium | 1.3.619 | ISC
elliptic | 6.5.3 | MIT
emittery | 0.7.2 | MIT
emoji-regex | 7.0.3 | MIT
emoji-regex | 8.0.0 | MIT
emoji-regex | 9.2.0 | MIT
emojis-list | 2.1.0 | MIT
emojis-list | 3.0.0 | MIT
encodeurl | 1.0.2 | MIT
end-of-stream | 1.4.4 | MIT
engine.io | 3.4.0 | MIT
engine.io-client | 3.4.0 | MIT
engine.io-client | 3.4.4 | MIT
engine.io-parser | 2.2.0 | MIT
engine.io-parser | 2.2.1 | MIT
enhanced-resolve | 4.3.0 | MIT
enquirer | 2.3.6 | MIT
entities | 1.1.2 | BSD 2-clause
entities | 2.1.0 | BSD 2-clause
errno | 0.1.7 | MIT
error-ex | 1.3.2 | MIT
error-stack-parser | 2.0.6 | MIT
es5-ext | 0.10.53 | ISC
es6-iterator | 2.0.3 | MIT
es6-symbol | 3.1.3 | ISC
es-abstract | 1.17.4 | MIT
es-abstract | 1.17.7 | MIT
es-abstract | 1.18.0-next.1 | MIT
escalade | 3.1.1 | MIT
escape-html | 1.0.3 | MIT
escape-string-regexp | 1.0.5 | MIT
escape-string-regexp | 2.0.0 | MIT
escodegen | 1.14.1 | BSD 2-clause
escodegen | 1.14.3 | BSD 2-clause
eslint | 7.15.0 | MIT
eslint-config-react-app | 6.0.0 | MIT
eslint-import-resolver-node | 0.3.4 | MIT
eslint-module-utils | 2.6.0 | MIT
eslint-plugin-flowtype | 5.2.0 | BSD 3-clause
eslint-plugin-import | 2.22.1 | MIT
eslint-plugin-jest | 24.1.3 | MIT
eslint-plugin-jsx-a11y | 6.4.1 | MIT
eslint-plugin-react | 7.21.5 | MIT
eslint-plugin-react-hooks | 4.2.0 | MIT
eslint-plugin-testing-library | 3.10.1 | MIT
eslint-scope | 4.0.3 | BSD 2-clause
eslint-scope | 5.1.1 | BSD 2-clause
eslint-utils | 2.1.0 | MIT
eslint-visitor-keys | 1.3.0 | Apache-2.0
eslint-visitor-keys | 2.0.0 | Apache-2.0
eslint-webpack-plugin | 2.4.1 | MIT
espree | 7.3.1 | BSD 2-clause
esprima | 1.2.2 | BSD
esprima | 4.0.1 | BSD 2-clause
esquery | 1.3.1 | BSD 3-clause
esrecurse | 4.3.0 | BSD 2-clause
es-to-primitive | 1.2.1 | MIT
estraverse | 4.3.0 | BSD 2-clause
estraverse | 5.2.0 | BSD 2-clause
estree-walker | 0.6.1 | MIT
estree-walker | 1.0.1 | MIT
esutils | 2.0.3 | BSD 2-clause
etag | 1.8.1 | MIT
eventemitter3 | 3.1.2 | MIT
eventemitter3 | 4.0.7 | MIT
events | 3.2.0 | MIT
eventsource | 1.0.7 | MIT
evp_bytestokey | 1.0.3 | MIT
execa | 1.0.0 | MIT
execa | 4.1.0 | MIT
exec-sh | 0.3.4 | MIT
exit | 0.1.2 | MIT
expand-brackets | 2.1.4 | MIT
expect | 26.6.2 | MIT
express | 4.17.1 | MIT
ext | 1.4.0 | ISC
extend | 3.0.2 | MIT
extend-shallow | 2.0.1 | MIT
extend-shallow | 3.0.2 | MIT
extglob | 2.0.4 | MIT
extsprintf | 1.3.0 | MIT
fast-deep-equal | 3.1.1 | MIT
fast-deep-equal | 3.1.3 | MIT
fast-glob | 3.2.4 | MIT
fast-json-stable-stringify | 2.1.0 | MIT
fast-levenshtein | 2.0.6 | MIT
fastq | 1.9.0 | ISC
faye-websocket | 0.10.0 | MIT
faye-websocket | 0.11.3 | Apache-2.0
fb-watchman | 2.0.1 | Apache-2.0
figgy-pudding | 3.5.2 | ISC
file-entry-cache | 6.0.0 | MIT
file-loader | 6.1.1 | MIT
filesize | 6.1.0 | BSD 3-clause
fill-range | 4.0.0 | MIT
fill-range | 7.0.1 | MIT
finalhandler | 1.1.2 | MIT
find-cache-dir | 2.1.0 | MIT
find-cache-dir | 3.3.1 | MIT
find-up | 1.1.2 | MIT
find-up | 2.1.0 | MIT
find-up | 3.0.0 | MIT
find-up | 4.1.0 | MIT
flat-cache | 3.0.4 | MIT
flatted | 2.0.1 | ISC
flatted | 3.1.0 | ISC
flatten | 1.0.3 | MIT
Fleck | 1.1.0 | MIT
flush-write-stream | 1.1.1 | MIT
follow-redirects | 1.13.0 | MIT
follow-redirects | 1.14.0 | MIT
follow-redirects | 1.5.10 | MIT
forever-agent | 0.6.1 | Apache-2.0
for-in | 1.0.2 | MIT
fork-ts-checker-webpack-plugin | 4.1.6 | MIT
form-data | 2.3.3 | MIT
forwarded | 0.1.2 | MIT
fragment-cache | 0.2.1 | MIT
fresh | 0.5.2 | MIT
from2 | 2.3.0 | MIT
fs.realpath | 1.0.0 | ISC
fs-extra | 7.0.1 | MIT
fs-extra | 8.1.0 | MIT
fs-extra | 9.0.1 | MIT
fs-minipass | 1.2.7 | ISC
fs-minipass | 2.1.0 | ISC
fstream | 1.0.12 | ISC
fs-write-stream-atomic | 1.0.10 | ISC
functional-red-black-tree | 1.0.1 | MIT
function-bind | 1.1.1 | MIT
gauge | 2.7.4 | ISC
gaze | 1.1.3 | MIT
gensync | 1.0.0-beta.2 | MIT
get-caller-file | 2.0.5 | ISC
get-intrinsic | 1.0.1 | MIT
get-own-enumerable-property-symbols | 3.0.2 | ISC
get-package-type | 0.1.0 | MIT
getpass | 0.1.7 | MIT
get-stdin | 4.0.1 | MIT
get-stream | 4.1.0 | MIT
get-stream | 5.2.0 | MIT
get-value | 2.0.6 | MIT
glob | 7.1.6 | ISC
global-modules | 2.0.0 | MIT
global-prefix | 3.0.0 | MIT
globals | 11.12.0 | MIT
globals | 12.4.0 | MIT
globby | 11.0.1 | MIT
globby | 6.1.0 | MIT
glob-parent | 3.1.0 | ISC
glob-parent | 5.1.1 | ISC
globule | 1.3.2 | MIT
graceful-fs | 4.2.3 | ISC
graceful-fs | 4.2.4 | ISC
growly | 1.3.0 | MIT
gud | 1.0.0 | MIT
gzip-size | 5.1.1 | MIT
handle-thing | 2.0.1 | MIT
harmony-reflect | 1.6.1 | Apache-2.0 or MPL-1.1
har-schema | 2.0.0 | ISC
har-validator | 5.1.3 | MIT
har-validator | 5.1.5 | MIT
has | 1.0.3 | MIT
has-ansi | 2.0.0 | MIT
has-binary2 | 1.0.3 | MIT
has-cors | 1.1.0 | MIT
has-flag | 3.0.0 | MIT
has-flag | 4.0.0 | MIT
hash.js | 1.1.7 | MIT
hash-base | 3.1.0 | MIT
has-symbols | 1.0.1 | MIT
has-unicode | 2.0.1 | ISC
has-value | 0.3.1 | MIT
has-value | 1.0.0 | MIT
has-values | 0.1.4 | MIT
has-values | 1.0.0 | MIT
he | 1.2.0 | MIT
hex-color-regex | 1.1.0 | MIT
history | 4.10.1 | MIT
hmac-drbg | 1.0.1 | MIT
hoist-non-react-statics | 3.3.2 | BSD 3-clause
hoopy | 0.1.4 | MIT
hosted-git-info | 2.8.8 | ISC
hpack.js | 2.1.6 | MIT
hsla-regex | 1.0.0 | MIT
hsl-regex | 1.0.0 | MIT
html-comment-regex | 1.1.2 | MIT
html-encoding-sniffer | 2.0.1 | MIT
html-entities | 1.3.1 | MIT
html-escaper | 2.0.2 | MIT
html-minifier-terser | 5.1.1 | MIT
htmlparser2 | 3.10.1 | MIT
html-parse-stringify2 | 2.0.1 | MIT
html-webpack-plugin | 4.5.0 | MIT
http-deceiver | 1.2.7 | MIT
http-errors | 1.4.0 | MIT
http-errors | 1.6.3 | MIT
http-errors | 1.7.2 | MIT
http-proxy | 1.18.1 | MIT
http-proxy-middleware | 0.19.1 | MIT
https-browserify | 1.0.0 | MIT
http-signature | 1.2.0 | MIT
human-signals | 1.1.1 | Apache-2.0
i18next | 19.8.3 | MIT
i18next | 19.8.4 | MIT
i18next-browser-languagedetector | 4.3.1 | MIT
i18next-browser-languagedetector | 6.0.1 | MIT
iconv-lite | 0.4.24 | MIT
icss-utils | 4.1.1 | ISC
identity-obj-proxy | 3.0.0 | MIT
ieee754 | 1.2.1 | BSD 3-clause
iferr | 0.1.5 | MIT
ignore | 4.0.6 | MIT
ignore | 5.1.8 | MIT
ignore-walk | 3.0.3 | ISC
immer | 7.0.9 | MIT
import-cwd | 2.1.0 | MIT
import-fresh | 2.0.0 | MIT
import-fresh | 3.2.2 | MIT
import-from | 2.1.0 | MIT
import-local | 2.0.0 | MIT
import-local | 3.0.2 | MIT
imurmurhash | 0.1.4 | MIT
indent-string | 2.1.0 | MIT
indent-string | 4.0.0 | MIT
indexes-of | 1.0.1 | MIT
indexof | 0.0.1 | MIT
infer-owner | 1.0.4 | ISC
inflection | 1.12.0 | MIT
inflight | 1.0.6 | ISC
inherits | 2.0.1 | ISC
inherits | 2.0.3 | ISC
inherits | 2.0.4 | ISC
ini | 1.3.5 | ISC
Inno Setup Compiler | 6.0.5 | Proprietary
in-publish | 2.0.1 | ISC
internal-ip | 4.3.0 | MIT
internal-slot | 1.0.2 | MIT
invariant | 2.2.4 | MIT
ip | 1.1.5 | MIT
ipaddr.js | 1.9.1 | MIT
ip-regex | 2.1.0 | MIT
is-absolute-url | 2.1.0 | MIT
is-absolute-url | 3.0.3 | MIT
is-accessor-descriptor | 0.1.6 | MIT
is-accessor-descriptor | 1.0.0 | MIT
is-arguments | 1.0.4 | MIT
is-arguments | 1.1.0 | MIT
isarray | 0.0.1 | MIT
isarray | 1.0.0 | MIT
isarray | 2.0.1 | MIT
is-arrayish | 0.2.1 | MIT
is-arrayish | 0.3.2 | MIT
is-binary-path | 1.0.1 | MIT
is-binary-path | 2.1.0 | MIT
is-bluebird | 1.0.2 | MIT
is-buffer | 1.1.6 | MIT
is-callable | 1.1.5 | MIT
is-callable | 1.2.2 | MIT
is-ci | 2.0.0 | MIT
is-color-stop | 1.1.0 | MIT
is-core-module | 2.2.0 | MIT
is-data-descriptor | 0.1.4 | MIT
is-data-descriptor | 1.0.0 | MIT
is-date-object | 1.0.2 | MIT
is-descriptor | 0.1.6 | MIT
is-descriptor | 1.0.2 | MIT
is-directory | 0.3.1 | MIT
is-docker | 2.1.1 | MIT
isexe | 2.0.0 | ISC
is-extendable | 0.1.1 | MIT
is-extendable | 1.0.1 | MIT
is-extglob | 2.1.1 | MIT
is-finite | 1.1.0 | MIT
is-fullwidth-code-point | 1.0.0 | MIT
is-fullwidth-code-point | 2.0.0 | MIT
is-fullwidth-code-point | 3.0.0 | MIT
is-generator-fn | 2.1.0 | MIT
is-glob | 3.1.0 | MIT
is-glob | 4.0.1 | MIT
is-module | 1.0.0 | MIT
is-negative-zero | 2.0.0 | MIT
is-negative-zero | 2.0.1 | MIT
is-number | 3.0.0 | MIT
is-number | 7.0.0 | MIT
is-obj | 1.0.1 | MIT
is-obj | 2.0.0 | MIT
isobject | 2.1.0 | MIT
isobject | 3.0.1 | MIT
is-path-cwd | 2.2.0 | MIT
is-path-in-cwd | 2.1.0 | MIT
is-path-inside | 2.1.0 | MIT
is-plain-obj | 1.1.0 | MIT
is-plain-object | 2.0.4 | MIT
is-potential-custom-element-name | 1.0.0 | MIT
is-regex | 1.0.5 | MIT
is-regex | 1.1.1 | MIT
is-regexp | 1.0.0 | MIT
is-resolvable | 1.1.0 | ISC
is-root | 2.1.0 | MIT
isstream | 0.1.2 | MIT
is-stream | 1.1.0 | MIT
is-stream | 2.0.0 | MIT
is-string | 1.0.5 | MIT
is-svg | 3.0.0 | MIT
is-symbol | 1.0.3 | MIT
istanbul-lib-coverage | 3.0.0 | BSD 3-clause
istanbul-lib-instrument | 4.0.3 | BSD 3-clause
istanbul-lib-report | 3.0.0 | BSD 3-clause
istanbul-lib-source-maps | 4.0.0 | BSD 3-clause
istanbul-reports | 3.0.2 | BSD 3-clause
is-typedarray | 1.0.0 | MIT
is-utf8 | 0.2.1 | MIT
is-windows | 1.0.2 | MIT
is-wsl | 1.1.0 | MIT
is-wsl | 2.2.0 | MIT
jest | 26.6.0 | MIT
jest-changed-files | 26.6.2 | MIT
jest-circus | 26.6.0 | MIT
jest-cli | 26.6.3 | MIT
jest-config | 26.6.3 | MIT
jest-diff | 26.6.2 | MIT
jest-docblock | 26.0.0 | MIT
jest-each | 26.6.2 | MIT
jest-environment-jsdom | 26.6.2 | MIT
jest-environment-node | 26.6.2 | MIT
jest-get-type | 26.3.0 | MIT
jest-haste-map | 26.6.2 | MIT
jest-jasmine2 | 26.6.3 | MIT
jest-leak-detector | 26.6.2 | MIT
jest-matcher-utils | 26.6.2 | MIT
jest-message-util | 26.6.2 | MIT
jest-mock | 26.6.2 | MIT
jest-pnp-resolver | 1.2.2 | MIT
jest-regex-util | 26.0.0 | MIT
jest-resolve | 26.6.0 | MIT
jest-resolve | 26.6.2 | MIT
jest-resolve-dependencies | 26.6.3 | MIT
jest-runner | 26.6.3 | MIT
jest-runtime | 26.6.3 | MIT
jest-serializer | 26.6.2 | MIT
jest-snapshot | 26.6.2 | MIT
jest-util | 26.6.2 | MIT
jest-validate | 26.6.2 | MIT
jest-watcher | 26.6.2 | MIT
jest-watch-typeahead | 0.6.1 | MIT
jest-worker | 24.9.0 | MIT
jest-worker | 26.6.2 | MIT
js-base64 | 2.6.4 | BSD 3-clause
jsbn | 0.1.1 | MIT
jsdom | 16.4.0 | MIT
jsesc | 0.5.0 | MIT
jsesc | 2.5.2 | MIT
json3 | 3.3.3 | MIT
json5 | 1.0.1 | MIT
json5 | 2.1.3 | MIT
jsonfile | 4.0.0 | MIT
jsonfile | 6.1.0 | MIT
json-parse-better-errors | 1.0.2 | MIT
json-parse-even-better-errors | 2.3.1 | MIT
jsonpath | 1.0.2 | MIT
jsonpath | 1.1.1 | MIT
json-schema | 0.2.3 | AFL-2.1 or BSD 3-clause
json-schema-traverse | 0.4.1 | MIT
json-stable-stringify-without-jsonify | 1.0.1 | MIT
json-stringify-safe | 5.0.1 | ISC
jsonwebtoken | 8.5.1 | MIT
jsprim | 1.4.1 | MIT
js-tokens | 4.0.0 | MIT
jsx-ast-utils | 3.1.0 | MIT
js-yaml | 3.14.1 | MIT
jwa | 1.4.1 | MIT
jws | 3.2.2 | MIT
killable | 1.0.1 | ISC
kind-of | 3.2.2 | MIT
kind-of | 4.0.0 | MIT
kind-of | 5.1.0 | MIT
kind-of | 6.0.3 | MIT
kleur | 3.0.3 | MIT
language-subtag-registry | 0.3.21 | ODC-By-1.0
language-tags | 1.0.5 | MIT
last-call-webpack-plugin | 3.0.0 | MIT
leven | 3.1.0 | MIT
levn | 0.3.0 | MIT
levn | 0.4.1 | MIT
lines-and-columns | 1.1.6 | MIT
loader-runner | 2.4.0 | MIT
loader-utils | 1.2.3 | MIT
loader-utils | 1.4.0 | MIT
loader-utils | 2.0.0 | MIT
loadjs | 4.2.0 | MIT
load-json-file | 1.1.0 | MIT
load-json-file | 2.0.0 | MIT
locate-path | 2.0.0 | MIT
locate-path | 3.0.0 | MIT
locate-path | 5.0.0 | MIT
lodash | 4.17.15 | MIT
lodash | 4.17.20 | MIT
lodash._reinterpolate | 3.0.0 | MIT
lodash.get | 4.4.2 | MIT
lodash.groupby | 4.6.0 | MIT
lodash.includes | 4.3.0 | MIT
lodash.isboolean | 3.0.3 | MIT
lodash.isinteger | 4.0.4 | MIT
lodash.isnumber | 3.0.3 | MIT
lodash.isplainobject | 4.0.6 | MIT
lodash.isstring | 4.0.1 | MIT
lodash.keyby | 4.6.0 | MIT
lodash.memoize | 4.1.2 | MIT
lodash.merge | 4.6.2 | MIT
lodash.once | 4.1.1 | MIT
lodash.set | 4.3.2 | MIT
lodash.sortby | 4.7.0 | MIT
lodash.sum | 4.0.2 | MIT
lodash.template | 4.5.0 | MIT
lodash.templatesettings | 4.2.0 | MIT
lodash.uniq | 4.5.0 | MIT
log4js | 6.1.2 | Apache-2.0
loglevel | 1.7.1 | MIT
loose-envify | 1.4.0 | MIT
loud-rejection | 1.6.0 | MIT
lower-case | 2.0.2 | MIT
lru-cache | 4.1.5 | ISC
lru-cache | 5.1.1 | ISC
lru-cache | 6.0.0 | ISC
lz-string | 1.4.4 | WTFPL
magic-string | 0.25.7 | MIT
make-dir | 2.1.0 | MIT
make-dir | 3.1.0 | MIT
makeerror | 1.0.11 | BSD 3-clause
map-cache | 0.2.2 | MIT
map-obj | 1.0.1 | MIT
map-visit | 1.0.0 | MIT
md5.js | 1.3.5 | MIT
mdn-data | 2.0.14 | CC0-1.0
mdn-data | 2.0.4 | CC0-1.0
media-typer | 0.3.0 | MIT
memory-fs | 0.4.1 | MIT
memory-fs | 0.5.0 | MIT
meow | 3.7.0 | MIT
merge2 | 1.4.1 | MIT
merge-descriptors | 1.0.1 | MIT
merge-stream | 2.0.0 | MIT
methods | 1.1.2 | MIT
microevent.ts | 0.1.1 | MIT
micromatch | 3.1.10 | MIT
micromatch | 4.0.2 | MIT
Microsoft.AspNetCore.Identity.EntityFrameworkCore | 3.1.5 | Apache-2.0
Microsoft.AspNetCore.Mvc.NewtonsoftJson | 3.0.3 | Apache-2.0
Microsoft.EntityFrameworkCore.Sqlite | 3.1.5 | Apache-2.0
Microsoft.Extensions.Logging | 2.2.0 | Apache-2.0
Microsoft.Extensions.Logging.Abstractions | 2.2.0 | Apache-2.0
Microsoft.Win32.Registry | 4.5.0 | MIT
miller-rabin | 4.0.1 | MIT
mime | 1.6.0 | MIT
mime | 2.4.6 | MIT
mime-db | 1.43.0 | MIT
mime-db | 1.44.0 | MIT
mime-types | 2.1.26 | MIT
mime-types | 2.1.27 | MIT
mimic-fn | 2.1.0 | MIT
mini-create-react-context | 0.4.1 | MIT
mini-css-extract-plugin | 0.11.3 | MIT
minimalistic-assert | 1.0.1 | ISC
minimalistic-crypto-utils | 1.0.1 | MIT
minimatch | 3.0.4 | ISC
minimist | 0.0.8 | MIT
minimist | 1.2.0 | MIT
minimist | 1.2.5 | MIT
min-indent | 1.0.1 | MIT
minipass | 2.9.0 | ISC
minipass | 3.1.3 | ISC
minipass-collect | 1.0.2 | ISC
minipass-flush | 1.0.5 | ISC
minipass-pipeline | 1.2.4 | ISC
minizlib | 1.3.3 | MIT
minizlib | 2.1.2 | MIT
mississippi | 3.0.0 | BSD 2-clause
mixin-deep | 1.3.2 | MIT
mkdirp | 0.5.1 | MIT
mkdirp | 0.5.5 | MIT
mkdirp | 1.0.4 | MIT
moment | 2.24.0 | MIT
moment | 2.29.1 | MIT
moment-duration-format | 2.3.2 | MIT
moment-timezone | 0.5.28 | MIT
move-concurrently | 1.0.1 | ISC
ms | 2.0.0 | MIT
ms | 2.1.1 | MIT
ms | 2.1.2 | MIT
multicast-dns | 6.2.3 | MIT
multicast-dns-service-types | 1.1.0 | MIT
nan | 2.14.0 | MIT
nanoid | 3.1.20 | MIT
nanomatch | 1.2.13 | MIT
native-url | 0.2.6 | Apache-2.0
natural-compare | 1.4.0 | MIT
needle | 2.3.3 | MIT
negotiator | 0.6.2 | MIT
neo-async | 2.6.2 | MIT
Newtonsoft.Json | 12.0.1 | MIT
Newtonsoft.Json | 12.0.2 | MIT
next-tick | 1.0.0 | MIT
nice-try | 1.0.5 | MIT
NLog.Extensions.Logging | 1.4.0 | BSD 2-clause
NLog.WindowsEventLog | 4.5.11 | BSD 3-clause
NModbus | 3.0.62 | MIT
no-case | 3.0.4 | MIT
node-forge | 0.10.0 | BSD 3-clause or GPL-2.0
node-gyp | 3.8.0 | MIT
node-int64 | 0.4.0 | MIT
node-libs-browser | 2.2.1 | MIT
node-modules-regexp | 1.0.0 | MIT
node-notifier | 8.0.0 | MIT
node-pre-gyp | 0.11.0 | BSD 3-clause
node-releases | 1.1.67 | MIT
node-sass | 4.14.1 | MIT
nopt | 3.0.6 | ISC
nopt | 4.0.1 | ISC
normalize-package-data | 2.5.0 | BSD 2-clause
normalize-path | 2.1.1 | MIT
normalize-path | 3.0.0 | MIT
normalize-range | 0.1.2 | MIT
normalize-url | 1.9.1 | MIT
normalize-url | 3.3.0 | MIT
npm-bundled | 1.1.1 | ISC
npmlog | 4.1.2 | ISC
npm-normalize-package-bin | 1.0.1 | ISC
npm-packlist | 1.4.8 | ISC
npm-run-path | 2.0.2 | MIT
npm-run-path | 4.0.1 | MIT
nth-check | 1.0.2 | BSD 2-clause
num2fraction | 1.2.2 | MIT
number-is-nan | 1.0.1 | MIT
nwsapi | 2.2.0 | MIT
oauth-sign | 0.9.0 | Apache-2.0
object.assign | 4.1.0 | MIT
object.assign | 4.1.1 | MIT
object.assign | 4.1.2 | MIT
object.entries | 1.1.3 | MIT
object.fromentries | 2.0.3 | MIT
object.getownpropertydescriptors | 2.1.1 | MIT
object.pick | 1.3.0 | MIT
object.values | 1.1.2 | MIT
object-assign | 4.1.1 | MIT
object-component | 0.0.3 | MIT
object-copy | 0.1.0 | MIT
object-inspect | 1.7.0 | MIT
object-inspect | 1.8.0 | MIT
object-inspect | 1.9.0 | MIT
object-is | 1.1.3 | MIT
object-is | 1.1.4 | MIT
object-keys | 1.1.1 | MIT
object-visit | 1.0.1 | MIT
obuf | 1.1.2 | MIT
once | 1.4.0 | ISC
onetime | 5.1.2 | MIT
on-finished | 2.3.0 | MIT
on-headers | 1.0.2 | MIT
open | 7.3.0 | MIT
opn | 5.5.0 | MIT
optimize-css-assets-webpack-plugin | 5.0.4 | MIT
optionator | 0.8.3 | MIT
optionator | 0.9.1 | MIT
original | 1.0.2 | MIT
os-browserify | 0.3.0 | MIT
osenv | 0.1.5 | ISC
os-homedir | 1.0.2 | MIT
os-tmpdir | 1.0.2 | MIT
pako | 1.0.11 | MIT and Zlib
parallel-transform | 1.2.0 | MIT
param-case | 3.0.4 | MIT
parent-module | 1.0.1 | MIT
parse5 | 5.1.1 | MIT
parse-asn1 | 5.1.6 | ISC
parse-json | 2.2.0 | MIT
parse-json | 4.0.0 | MIT
parse-json | 5.1.0 | MIT
parseqs | 0.0.5 | MIT
parseqs | 0.0.6 | MIT
parseuri | 0.0.5 | MIT
parseuri | 0.0.6 | MIT
parseurl | 1.3.3 | MIT
pascalcase | 0.1.1 | MIT
pascal-case | 3.1.2 | MIT
path-browserify | 0.0.1 | MIT
path-dirname | 1.0.2 | MIT
path-exists | 2.1.0 | MIT
path-exists | 3.0.0 | MIT
path-exists | 4.0.0 | MIT
path-is-absolute | 1.0.1 | MIT
path-is-inside | 1.0.2 | WTFPL or MIT
path-key | 2.0.1 | MIT
path-key | 3.1.1 | MIT
path-match | 1.2.4 | MIT
path-parse | 1.0.6 | MIT
path-to-regexp | 0.1.7 | MIT
path-to-regexp | 1.8.0 | MIT
path-type | 1.1.0 | MIT
path-type | 2.0.0 | MIT
path-type | 4.0.0 | MIT
pbkdf2 | 3.1.1 | MIT
p-each-series | 2.2.0 | MIT
performance-now | 2.1.0 | MIT
p-finally | 1.0.0 | MIT
picomatch | 2.2.2 | MIT
pify | 2.3.0 | MIT
pify | 4.0.1 | MIT
pinkie | 2.0.4 | MIT
pinkie-promise | 2.0.1 | MIT
pirates | 4.0.1 | MIT
pkg-dir | 2.0.0 | MIT
pkg-dir | 3.0.0 | MIT
pkg-dir | 4.2.0 | MIT
pkg-up | 3.1.0 | MIT
p-limit | 1.3.0 | MIT
p-limit | 2.2.2 | MIT
p-limit | 2.3.0 | MIT
p-limit | 3.1.0 | MIT
p-locate | 2.0.0 | MIT
p-locate | 3.0.0 | MIT
p-locate | 4.1.0 | MIT
p-map | 2.1.0 | MIT
p-map | 4.0.0 | MIT
pnp-webpack-plugin | 1.6.4 | MIT
popper.js | 1.16.1 | MIT
portfinder | 1.0.28 | MIT
posix-character-classes | 0.1.1 | MIT
postcss | 7.0.21 | MIT
postcss | 7.0.35 | MIT
postcss | 8.2.0 | MIT
postcss-attribute-case-insensitive | 4.0.2 | MIT
postcss-browser-comments | 3.0.0 | CC0-1.0
postcss-calc | 7.0.5 | MIT
postcss-color-functional-notation | 2.0.1 | CC0-1.0
postcss-color-gray | 5.0.0 | ISC
postcss-color-hex-alpha | 5.0.3 | MIT
postcss-colormin | 4.0.3 | MIT
postcss-color-mod-function | 3.0.3 | CC0-1.0
postcss-color-rebeccapurple | 4.0.1 | MIT
postcss-convert-values | 4.0.1 | MIT
postcss-custom-media | 7.0.8 | MIT
postcss-custom-properties | 8.0.11 | MIT
postcss-custom-selectors | 5.1.2 | MIT
postcss-dir-pseudo-class | 5.0.0 | CC0-1.0
postcss-discard-comments | 4.0.2 | MIT
postcss-discard-duplicates | 4.0.2 | MIT
postcss-discard-empty | 4.0.1 | MIT
postcss-discard-overridden | 4.0.1 | MIT
postcss-double-position-gradients | 1.0.0 | CC0-1.0
postcss-env-function | 2.0.2 | CC0-1.0
postcss-flexbugs-fixes | 4.2.1 | MIT
postcss-focus-visible | 4.0.0 | CC0-1.0
postcss-focus-within | 3.0.0 | CC0-1.0
postcss-font-variant | 4.0.1 | MIT
postcss-gap-properties | 2.0.0 | CC0-1.0
postcss-image-set-function | 3.0.1 | CC0-1.0
postcss-initial | 3.0.2 | MIT
postcss-lab-function | 2.0.1 | CC0-1.0
postcss-load-config | 2.1.2 | MIT
postcss-loader | 3.0.0 | MIT
postcss-logical | 3.0.0 | CC0-1.0
postcss-media-minmax | 4.0.0 | MIT
postcss-merge-longhand | 4.0.11 | MIT
postcss-merge-rules | 4.0.3 | MIT
postcss-minify-font-values | 4.0.2 | MIT
postcss-minify-gradients | 4.0.2 | MIT
postcss-minify-params | 4.0.2 | MIT
postcss-minify-selectors | 4.0.2 | MIT
postcss-modules-extract-imports | 2.0.0 | ISC
postcss-modules-local-by-default | 3.0.3 | MIT
postcss-modules-scope | 2.2.0 | ISC
postcss-modules-values | 3.0.0 | ISC
postcss-nesting | 7.0.1 | CC0-1.0
postcss-normalize | 8.0.1 | CC0-1.0
postcss-normalize-charset | 4.0.1 | MIT
postcss-normalize-display-values | 4.0.2 | MIT
postcss-normalize-positions | 4.0.2 | MIT
postcss-normalize-repeat-style | 4.0.2 | MIT
postcss-normalize-string | 4.0.2 | MIT
postcss-normalize-timing-functions | 4.0.2 | MIT
postcss-normalize-unicode | 4.0.1 | MIT
postcss-normalize-url | 4.0.1 | MIT
postcss-normalize-whitespace | 4.0.2 | MIT
postcss-ordered-values | 4.1.2 | MIT
postcss-overflow-shorthand | 2.0.0 | CC0-1.0
postcss-page-break | 2.0.0 | MIT
postcss-place | 4.0.1 | CC0-1.0
postcss-preset-env | 6.7.0 | CC0-1.0
postcss-pseudo-class-any-link | 6.0.0 | CC0-1.0
postcss-reduce-initial | 4.0.3 | MIT
postcss-reduce-transforms | 4.0.2 | MIT
postcss-replace-overflow-wrap | 3.0.0 | MIT
postcss-safe-parser | 5.0.2 | MIT
postcss-selector-matches | 4.0.0 | MIT
postcss-selector-not | 4.0.0 | MIT
postcss-selector-parser | 3.1.2 | MIT
postcss-selector-parser | 5.0.0 | MIT
postcss-selector-parser | 6.0.4 | MIT
postcss-svgo | 4.0.2 | MIT
postcss-unique-selectors | 4.0.1 | MIT
postcss-value-parser | 3.3.1 | MIT
postcss-value-parser | 4.1.0 | MIT
postcss-values-parser | 2.0.1 | MIT
prelude-ls | 1.1.2 | MIT
prelude-ls | 1.2.1 | MIT
prepend-http | 1.0.4 | MIT
p-retry | 3.0.1 | MIT
pretty-bytes | 5.4.1 | MIT
pretty-error | 2.1.2 | MIT
pretty-format | 26.6.2 | MIT
process | 0.11.10 | MIT
process-nextick-args | 2.0.1 | MIT
progress | 2.0.3 | MIT
promise | 8.1.0 | MIT
promise-inflight | 1.0.1 | ISC
prompts | 2.4.0 | MIT
prop-types | 15.7.2 | MIT
prop-types-extra | 1.1.1 | MIT
proxy-addr | 2.0.6 | MIT
prr | 1.0.1 | MIT
pseudomap | 1.0.2 | ISC
psl | 1.7.0 | MIT
psl | 1.8.0 | MIT
p-try | 1.0.0 | MIT
p-try | 2.2.0 | MIT
public-encrypt | 4.0.3 | MIT
pump | 2.0.1 | MIT
pump | 3.0.0 | MIT
pumpify | 1.5.1 | MIT
punycode | 1.3.2 | MIT
punycode | 1.4.1 | MIT
punycode | 2.1.1 | MIT
q | 1.5.1 | MIT
qs | 6.5.2 | BSD 3-clause
qs | 6.7.0 | BSD 3-clause
qs | 6.9.4 | BSD 3-clause
querystring | 0.2.0 | MIT
query-string | 4.3.4 | MIT
querystring-es3 | 0.2.1 | MIT
querystringify | 2.1.1 | MIT
querystringify | 2.2.0 | MIT
RabbitMQ.Client | 6.2.1 | Apache-2.0 or MPL-2.0
raf | 3.4.1 | MIT
randombytes | 2.1.0 | MIT
randomfill | 1.0.4 | MIT
range-parser | 1.2.1 | MIT
raw-body | 2.4.0 | MIT
rc | 1.2.8 | BSD 2-clause or MIT or Apache-2.0
react | 16.14.0 | MIT
react | 17.0.1 | MIT
react | 17.0.2 | MIT
react-app-polyfill | 2.0.0 | MIT
react-component-managers | 3.2.2 | MIT
react-contextmenu | 2.14.0 | MIT
react-datepicker | 2.16.0 | MIT
react-dev-utils | 11.0.1 | MIT
react-dom | 16.14.0 | MIT
react-dom | 17.0.1 | MIT
react-dom | 17.0.2 | MIT
react-error-overlay | 6.0.8 | MIT
react-i18next | 11.7.3 | MIT
react-i18next | 11.8.0 | MIT
react-icon-base | 2.1.0 | MIT
react-icons | 2.2.7 | MIT
react-icons | 3.11.0 | MIT
react-icons | 4.1.0 | MIT
react-is | 16.13.0 | MIT
react-is | 16.13.1 | MIT
react-is | 17.0.1 | MIT
react-lifecycles-compat | 3.0.4 | MIT
react-loadable | 5.5.0 | MIT
react-onclickoutside | 6.9.0 | MIT
react-popper | 1.3.11 | MIT
react-popper | 1.3.7 | MIT
react-redux | 7.2.1 | MIT
react-redux-toastr | 7.6.5 | MIT
react-refresh | 0.8.3 | MIT
react-router | 5.2.0 | MIT
react-router-dom | 5.2.0 | MIT
react-scripts | 4.0.1 | MIT
reactstrap | 8.6.0 | MIT
reactstrap | 8.9.0 | MIT
react-table | 6.11.4 | MIT
react-table | 7.7.0 | MIT
react-transition-group | 2.9.0 | BSD 3-clause
react-widgets | 4.6.1 | MIT
readable-stream | 1.1.14 | MIT
readable-stream | 2.3.7 | MIT
readable-stream | 3.6.0 | MIT
readdirp | 2.2.1 | MIT
readdirp | 3.5.0 | MIT
read-pkg | 1.1.0 | MIT
read-pkg | 2.0.0 | MIT
read-pkg | 5.2.0 | MIT
read-pkg-up | 1.0.1 | MIT
read-pkg-up | 2.0.0 | MIT
read-pkg-up | 7.0.1 | MIT
recursive-readdir | 2.2.2 | MIT
redent | 1.0.0 | MIT
redent | 3.0.0 | MIT
redux | 4.0.5 | MIT
redux-thunk | 2.3.0 | MIT
regenerate | 1.4.2 | MIT
regenerate-unicode-properties | 8.2.0 | MIT
regenerator-runtime | 0.11.1 | MIT
regenerator-runtime | 0.13.4 | MIT
regenerator-runtime | 0.13.7 | MIT
regenerator-transform | 0.14.5 | MIT
regex-not | 1.0.2 | MIT
regexp.prototype.flags | 1.3.0 | MIT
regex-parser | 2.2.11 | MIT
regexpp | 3.1.0 | MIT
regexpu-core | 4.7.1 | MIT
regjsgen | 0.5.2 | MIT
regjsparser | 0.6.4 | BSD 2-clause
relateurl | 0.2.7 | MIT
remove-trailing-separator | 1.1.0 | ISC
renderkid | 2.0.4 | MIT
repeat-element | 1.1.3 | MIT
repeating | 2.0.1 | MIT
repeat-string | 1.6.1 | MIT
request | 2.88.2 | Apache-2.0
request-promise-core | 1.1.4 | ISC
request-promise-native | 1.0.9 | ISC
require-directory | 2.1.1 | MIT
require-main-filename | 2.0.0 | ISC
requires-port | 1.0.0 | MIT
resolve | 1.15.1 | MIT
resolve | 1.18.1 | MIT
resolve-cwd | 2.0.0 | MIT
resolve-cwd | 3.0.0 | MIT
resolve-from | 3.0.0 | MIT
resolve-from | 4.0.0 | MIT
resolve-from | 5.0.0 | MIT
resolve-pathname | 3.0.0 | MIT
resolve-url | 0.2.1 | MIT
resolve-url-loader | 3.1.2 | MIT
ret | 0.1.15 | MIT
retry | 0.12.0 | MIT
retry-as-promised | 3.2.0 | MIT
reusify | 1.0.4 | MIT
rework | 1.0.1 | MIT
rework-visit | 1.0.0 | MIT
rfdc | 1.1.4 | MIT
rgba-regex | 1.0.0 | MIT
rgb-regex | 1.0.1 | MIT
rimraf | 2.7.1 | ISC
rimraf | 3.0.2 | ISC
ripemd160 | 2.0.2 | MIT
rollup | 1.32.1 | MIT
rollup-plugin-babel | 4.4.0 | MIT
rollup-plugin-terser | 5.3.1 | MIT
rollup-pluginutils | 2.8.2 | MIT
rsvp | 4.8.5 | MIT
run-parallel | 1.1.10 | MIT
run-queue | 1.0.3 | ISC
safe-buffer | 5.1.2 | MIT
safe-buffer | 5.2.1 | MIT
safer-buffer | 2.1.2 | MIT
safe-regex | 1.1.0 | MIT
sams-config-ui | 1.0.0 | ISC
sane | 4.1.0 | MIT
sanitize.css | 10.0.0 | CC0-1.0
sass | 1.30.0 | MIT
sass-graph | 2.2.5 | MIT
sass-loader | 8.0.2 | MIT
sax | 1.2.4 | ISC
saxes | 5.0.1 | ISC
scheduler | 0.19.1 | MIT
scheduler | 0.20.1 | MIT
scheduler | 0.20.2 | MIT
schema-utils | 1.0.0 | MIT
schema-utils | 2.7.1 | MIT
schema-utils | 3.0.0 | MIT
scss-tokenizer | 0.2.3 | MIT
select-hose | 2.0.0 | MIT
selfsigned | 1.10.8 | MIT
semver | 5.3.0 | ISC
semver | 5.7.1 | ISC
semver | 6.3.0 | ISC
semver | 7.0.0 | ISC
semver | 7.3.2 | ISC
send | 0.17.1 | MIT
sequelize | 5.21.5 | MIT
sequelize-pool | 2.3.0 | MIT
serialize-javascript | 4.0.0 | BSD 3-clause
serialize-javascript | 5.0.1 | BSD 3-clause
serve-index | 1.9.1 | MIT
serve-static | 1.14.1 | MIT
set-blocking | 2.0.0 | ISC
setimmediate | 1.0.5 | MIT
setprototypeof | 1.1.0 | ISC
setprototypeof | 1.1.1 | ISC
set-value | 2.0.1 | MIT
sha.js | 2.4.11 | MIT and BSD 3-clause
shallow-clone | 3.0.1 | MIT
shallow-equal-object | 1.1.1 | MIT
shebang-command | 1.2.0 | MIT
shebang-command | 2.0.0 | MIT
shebang-regex | 1.0.0 | MIT
shebang-regex | 3.0.0 | MIT
shell-quote | 1.7.2 | MIT
shellwords | 0.1.1 | MIT
shimmer | 1.2.1 | BSD 2-clause
side-channel | 1.0.3 | MIT
signal-exit | 3.0.2 | ISC
signal-exit | 3.0.3 | ISC
simple-swizzle | 0.2.2 | MIT
sisteransi | 1.0.5 | MIT
slash | 3.0.0 | MIT
slice-ansi | 2.1.0 | MIT
snapdragon | 0.8.2 | MIT
snapdragon-node | 2.1.1 | MIT
snapdragon-util | 3.0.1 | MIT
socket.io | 2.3.0 | MIT
socket.io-adapter | 1.1.2 | MIT
socket.io-client | 2.3.0 | MIT
socket.io-client | 2.3.1 | MIT
socket.io-parser | 3.3.0 | MIT
socket.io-parser | 3.3.1 | MIT
socket.io-parser | 3.4.0 | MIT
sockjs | 0.3.20 | MIT
sockjs-client | 1.4.0 | MIT
sort-keys | 1.1.2 | MIT
source-list-map | 2.0.1 | MIT
source-map | 0.4.4 | BSD 3-clause
source-map | 0.5.7 | BSD 3-clause
source-map | 0.6.1 | BSD 3-clause
source-map | 0.7.3 | BSD 3-clause
sourcemap-codec | 1.4.8 | MIT
source-map-resolve | 0.5.3 | MIT
source-map-resolve | 0.6.0 | MIT
source-map-support | 0.5.19 | MIT
source-map-url | 0.4.0 | MIT
spdx-correct | 3.1.1 | Apache-2.0
spdx-exceptions | 2.3.0 | CC-BY-3.0
spdx-expression-parse | 3.0.1 | MIT
spdx-license-ids | 3.0.6 | CC0-1.0
spdx-license-ids | 3.0.7 | CC0-1.0
spdy | 4.0.2 | MIT
spdy-transport | 3.0.0 | MIT
split-string | 3.1.0 | MIT
sprintf-js | 1.0.3 | BSD 3-clause
spy-on-component | 1.1.3 | MIT
sqlite3 | 4.1.1 | BSD 3-clause
sshpk | 1.16.1 | MIT
ssri | 6.0.1 | ISC
ssri | 8.0.0 | ISC
stable | 0.1.8 | MIT
stackframe | 1.2.0 | MIT
stack-utils | 2.0.3 | MIT
static-eval | 2.0.2 | MIT
static-extend | 0.1.2 | MIT
statuses | 1.5.0 | MIT
stdout-stream | 1.4.1 | MIT
stealthy-require | 1.1.1 | ISC
stream-browserify | 2.0.2 | MIT
stream-each | 1.2.3 | MIT
stream-http | 2.8.3 | MIT
streamroller | 2.2.3 | MIT
stream-shift | 1.0.1 | MIT
strict-uri-encode | 1.1.0 | MIT
string.prototype.matchall | 4.0.3 | MIT
string.prototype.trimend | 1.0.2 | MIT
string.prototype.trimend | 1.0.3 | MIT
string.prototype.trimleft | 2.1.1 | MIT
string.prototype.trimright | 2.1.1 | MIT
string.prototype.trimstart | 1.0.2 | MIT
string.prototype.trimstart | 1.0.3 | MIT
string_decoder | 0.10.31 | MIT
string_decoder | 1.1.1 | MIT
string_decoder | 1.3.0 | MIT
stringify-object | 3.3.0 | BSD 2-clause
string-length | 4.0.1 | MIT
string-natural-compare | 3.0.1 | MIT
string-width | 1.0.2 | MIT
string-width | 2.1.1 | MIT
string-width | 3.1.0 | MIT
string-width | 4.2.0 | MIT
strip-ansi | 3.0.1 | MIT
strip-ansi | 4.0.0 | MIT
strip-ansi | 5.2.0 | MIT
strip-ansi | 6.0.0 | MIT
strip-bom | 2.0.0 | MIT
strip-bom | 3.0.0 | MIT
strip-bom | 4.0.0 | MIT
strip-comments | 1.0.2 | MIT
strip-eof | 1.0.0 | MIT
strip-final-newline | 2.0.0 | MIT
strip-indent | 1.0.1 | MIT
strip-indent | 3.0.0 | MIT
strip-json-comments | 2.0.1 | MIT
strip-json-comments | 3.1.1 | MIT
stylehacks | 4.0.3 | MIT
style-loader | 1.3.0 | MIT
supports-color | 2.0.0 | MIT
supports-color | 5.5.0 | MIT
supports-color | 6.1.0 | MIT
supports-color | 7.2.0 | MIT
supports-hyperlinks | 2.1.0 | MIT
svgo | 1.3.2 | MIT
svg-parser | 2.0.4 | MIT
symbol-observable | 1.2.0 | MIT
symbol-tree | 3.2.4 | MIT
System.Collections.Immutable | 1.5.0 | MIT
System.Collections.Immutable | 1.7.0 | MIT
System.ComponentModel.Annotations | 4.5.0 | MIT
System.Configuration.ConfigurationManager | 4.5.0 | MIT
System.Data.SQLite.Core | 1.0.109.2 | Public Domain
System.Data.SQLite.Core | 1.0.112.0 | Public Domain
System.Security.Permissions | 4.5.0 | MIT
System.Threading.Tasks.Dataflow | 4.11.0 | MIT
System.Threading.Tasks.Dataflow | 4.11.1 | MIT
System.Threading.Tasks.Dataflow | 4.9.0 | MIT
table | 5.4.6 | BSD 3-clause
tapable | 1.1.3 | MIT
tar | 2.2.2 | ISC
tar | 4.4.13 | ISC
tar | 6.0.5 | ISC
temp-dir | 1.0.0 | MIT
tempy | 0.3.0 | MIT
terminal-link | 2.1.1 | MIT
terser | 4.8.0 | BSD 2-clause
terser | 5.5.1 | BSD 2-clause
terser-webpack-plugin | 1.4.5 | MIT
terser-webpack-plugin | 4.2.3 | MIT
test-exclude | 6.0.0 | ISC
text-table | 0.2.0 | MIT
throat | 5.0.0 | MIT
through2 | 2.0.5 | MIT
thunky | 1.1.0 | MIT
timers-browserify | 2.0.12 | MIT
timsort | 0.3.0 | MIT
tiny-invariant | 1.1.0 | MIT
tiny-warning | 1.0.3 | MIT
tmpl | 1.0.4 | BSD 3-clause
to-array | 0.1.4 | MIT
to-arraybuffer | 1.0.1 | MIT
to-fast-properties | 2.0.0 | MIT
toidentifier | 1.0.0 | MIT
to-object-path | 0.3.0 | MIT
toposort-class | 1.0.1 | MIT
to-regex | 3.0.2 | MIT
to-regex-range | 2.1.1 | MIT
to-regex-range | 5.0.1 | MIT
tough-cookie | 2.5.0 | BSD 3-clause
tough-cookie | 3.0.1 | BSD 3-clause
tr46 | 2.0.2 | MIT
trim-newlines | 1.0.0 | MIT
true-case-path | 1.0.3 | Apache-2.0
tryer | 1.0.1 | MIT
tsconfig-paths | 3.9.0 | MIT
tslib | 1.14.1 | 0BSD
tslib | 2.0.3 | 0BSD
tslib | 2.2.0 | 0BSD
ts-pnp | 1.2.0 | MIT
tsutils | 3.17.1 | MIT
tty-browserify | 0.0.0 | MIT
tunnel-agent | 0.6.0 | Apache-2.0
tweetnacl | 0.14.5 | Unlicense
type | 1.2.0 | ISC
type | 2.1.0 | ISC
type-check | 0.3.2 | MIT
type-check | 0.4.0 | MIT
typedarray | 0.0.6 | MIT
typedarray-to-buffer | 3.1.5 | MIT
type-detect | 4.0.8 | MIT
typed-styles | 0.0.7 | MIT
type-fest | 0.11.0 | MIT or CC0-1.0
type-fest | 0.3.1 | MIT or CC0-1.0
type-fest | 0.6.0 | MIT or CC0-1.0
type-fest | 0.8.1 | MIT or CC0-1.0
type-is | 1.6.18 | MIT
uncontrollable | 7.1.1 | MIT
underscore | 1.12.1 | MIT
underscore | 1.7.0 | MIT
unicode-canonical-property-names-ecmascript | 1.0.4 | MIT
unicode-match-property-ecmascript | 1.0.4 | MIT
unicode-match-property-value-ecmascript | 1.2.0 | MIT
unicode-property-aliases-ecmascript | 1.1.0 | MIT
union-value | 1.0.1 | MIT
uniq | 1.0.1 | MIT
uniqs | 2.0.0 | MIT
unique-filename | 1.1.1 | ISC
unique-slug | 2.0.2 | ISC
unique-string | 1.0.0 | MIT
universalify | 0.1.2 | MIT
universalify | 1.0.0 | MIT
universalify | 2.0.0 | MIT
unpipe | 1.0.0 | MIT
unquote | 1.1.1 | MIT
unset-value | 1.0.0 | MIT
upath | 1.2.0 | MIT
uri-js | 4.2.2 | BSD 2-clause
uri-js | 4.4.0 | BSD 2-clause
urix | 0.1.0 | MIT
url | 0.11.0 | MIT
url-loader | 4.1.1 | MIT
url-parse | 1.4.7 | MIT
use | 3.1.1 | MIT
util | 0.10.3 | MIT
util | 0.11.1 | MIT
util.promisify | 1.0.0 | MIT
util.promisify | 1.0.1 | MIT
utila | 0.4.0 | MIT
util-deprecate | 1.0.2 | MIT
utility-types | 3.10.0 | MIT
utils-merge | 1.0.1 | MIT
uuid | 3.4.0 | MIT
uuid | 7.0.2 | MIT
uuid | 8.3.1 | MIT
v8-compile-cache | 2.2.0 | MIT
v8-to-istanbul | 7.0.0 | ISC
validate-npm-package-license | 3.0.4 | Apache-2.0
validator | 10.11.0 | MIT
value-equal | 1.0.1 | MIT
vary | 1.1.2 | MIT
vendors | 1.0.4 | MIT
verror | 1.10.0 | MIT
vm-browserify | 1.1.2 | MIT
void-elements | 2.0.1 | MIT
w3c-hr-time | 1.0.2 | MIT
w3c-xmlserializer | 2.0.0 | MIT
walker | 1.0.7 | Apache-2.0
warning | 3.0.0 | BSD 3-clause
warning | 4.0.3 | MIT
watchpack | 1.7.5 | MIT
watchpack-chokidar2 | 2.0.1 | MIT
wbuf | 1.7.3 | MIT
webidl-conversions | 5.0.0 | BSD 2-clause
webidl-conversions | 6.1.0 | BSD 2-clause
webpack | 4.44.2 | MIT
webpack-dev-middleware | 3.7.2 | MIT
webpack-dev-server | 3.11.0 | MIT
webpack-log | 2.0.0 | MIT
webpack-manifest-plugin | 2.2.0 | MIT
webpack-sources | 1.4.3 | MIT
websocket-driver | 0.6.5 | MIT
websocket-extensions | 0.1.4 | Apache-2.0
whatwg-encoding | 1.0.5 | MIT
whatwg-fetch | 3.5.0 | MIT
whatwg-mimetype | 2.3.0 | MIT
whatwg-url | 8.4.0 | MIT
which | 1.3.1 | ISC
which | 2.0.2 | ISC
which-module | 2.0.0 | ISC
wide-align | 1.1.3 | ISC
wkx | 0.4.8 | MIT
word-wrap | 1.2.3 | MIT
workbox-background-sync | 5.1.4 | MIT
workbox-broadcast-update | 5.1.4 | MIT
workbox-build | 5.1.4 | MIT
workbox-cacheable-response | 5.1.4 | MIT
workbox-core | 5.1.4 | MIT
workbox-expiration | 5.1.4 | MIT
workbox-google-analytics | 5.1.4 | MIT
workbox-navigation-preload | 5.1.4 | MIT
workbox-precaching | 5.1.4 | MIT
workbox-range-requests | 5.1.4 | MIT
workbox-routing | 5.1.4 | MIT
workbox-strategies | 5.1.4 | MIT
workbox-streams | 5.1.4 | MIT
workbox-sw | 5.1.4 | MIT
workbox-webpack-plugin | 5.1.4 | MIT
workbox-window | 5.1.4 | MIT
worker-farm | 1.7.0 | MIT
worker-rpc | 0.1.1 | MIT
wrap-ansi | 5.1.0 | MIT
wrap-ansi | 6.2.0 | MIT
wrappy | 1.0.2 | ISC
write-file-atomic | 3.0.3 | ISC
ws | 6.1.4 | MIT
ws | 6.2.1 | MIT
ws | 7.2.1 | MIT
ws | 7.4.1 | MIT
xmlchars | 2.2.0 | MIT
xmlhttprequest-ssl | 1.5.5 | MIT
xml-name-validator | 3.0.0 | Apache-2.0
xtend | 4.0.2 | MIT
y18n | 4.0.0 | ISC
y18n | 4.0.1 | ISC
yallist | 2.1.2 | ISC
yallist | 3.1.1 | ISC
yallist | 4.0.0 | ISC
yaml | 1.10.0 | ISC
yargs | 13.3.2 | MIT
yargs | 15.4.1 | MIT
yargs-parser | 13.1.2 | ISC
yargs-parser | 18.1.3 | ISC
yeast | 0.1.2 | MIT
yocto-queue | 0.1.0 | MIT

# Academic Free License v.2.1

This Academic Free License (the "License") applies to any original work of authorship (the "Original Work") whose owner (the "Licensor") has placed the following notice immediately following the copyright notice for the Original Work:

Licensed under the Academic Free License version 2.1

1) Grant of Copyright License. Licensor hereby grants You a world-wide, royalty-free, non-exclusive, perpetual, sublicenseable license to do the following:

a) to reproduce the Original Work in copies;

b) to prepare derivative works ("Derivative Works") based upon the Original Work;

c) to distribute copies of the Original Work and Derivative Works to the public;

d) to perform the Original Work publicly; and

e) to display the Original Work publicly.

2) Grant of Patent License. Licensor hereby grants You a world-wide, royalty-free, non-exclusive, perpetual, sublicenseable license, under patent claims owned or controlled by the Licensor that are embodied in the Original Work as furnished by the Licensor, to make, use, sell and offer for sale the Original Work and Derivative Works.

3) Grant of Source Code License. The term "Source Code" means the preferred form of the Original Work for making modifications to it and all available documentation describing how to modify the Original Work. Licensor hereby agrees to provide a machine-readable copy of the Source Code of the Original Work along with each copy of the Original Work that Licensor distributes. Licensor reserves the right to satisfy this obligation by placing a machine-readable copy of the Source Code in an information repository reasonably calculated to permit inexpensive and convenient access by You for as long as Licensor continues to distribute the Original Work, and by publishing the address of that information repository in a notice immediately following the copyright notice that applies to the Original Work.

4) Exclusions From License Grant. Neither the names of Licensor, nor the names of any contributors to the Original Work, nor any of their trademarks or service marks, may be used to endorse or promote products derived from this Original Work without express prior written permission of the Licensor. Nothing in this License shall be deemed to grant any rights to trademarks, copyrights, patents, trade secrets or any other intellectual property of Licensor except as expressly stated herein. No patent license is granted to make, use, sell or offer to sell embodiments of any patent claims other than the licensed claims defined in Section 2. No right is granted to the trademarks of Licensor even if such marks are included in the Original Work. Nothing in this License shall be interpreted to prohibit Licensor from licensing under different terms from this License any Original Work that Licensor otherwise would have a right to license.

5) This section intentionally omitted.

6) Attribution Rights. You must retain, in the Source Code of any Derivative Works that You create, all copyright, patent or trademark notices from the Source Code of the Original Work, as well as any notices of licensing and any descriptive text identified therein as an "Attribution Notice." You must cause the Source Code for any Derivative Works that You create to carry a prominent Attribution Notice reasonably calculated to inform recipients that You have modified the Original Work.

7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that the copyright in and to the Original Work and the patent rights granted herein by Licensor are owned by the Licensor or are sublicensed to You under the terms of this License with the permission of the contributor(s) of those copyrights and patent rights. Except as expressly stated in the immediately proceeding sentence, the Original Work is provided under this License on an "AS IS" BASIS and WITHOUT WARRANTY, either express or implied, including, without limitation, the warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU. This DISCLAIMER OF WARRANTY constitutes an essential part of this License. No license to Original Work is granted hereunder except under this disclaimer.

8) Limitation of Liability. Under no circumstances and under no legal theory, whether in tort (including negligence), contract, or otherwise, shall the Licensor be liable to any person for any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or the use of the Original Work including, without limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses. This limitation of liability shall not apply to liability for death or personal injury resulting from Licensor's negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You.

9) Acceptance and Termination. If You distribute copies of the Original Work or a Derivative Work, You must make a reasonable effort under the circumstances to obtain the express assent of recipients to the terms of this License. Nothing else but this License (or another written agreement between Licensor and You) grants You permission to create Derivative Works based upon the Original Work or to exercise any of the rights granted in Section 1 herein, and any attempt to do so except under the terms of this License (or another written agreement between Licensor and You) is expressly prohibited by U.S. copyright law, the equivalent laws of other countries, and by international treaty. Therefore, by exercising any of the rights granted to You in Section 1 herein, You indicate Your acceptance of this License and all of its terms and conditions.

10) Termination for Patent Action. This License shall terminate automatically and You may no longer exercise any of the rights granted to You by this License as of the date You commence an action, including a cross-claim or counterclaim, against Licensor or any licensee alleging that the Original Work infringes a patent. This termination provision shall not apply for an action alleging patent infringement by combinations of the Original Work with other software or hardware.

11) Jurisdiction, Venue and Governing Law. Any action or suit relating to this License may be brought only in the courts of a jurisdiction wherein the Licensor resides or in which Licensor conducts its primary business, and under the laws of that jurisdiction excluding its conflict-of-law provisions. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any use of the Original Work outside the scope of this License or after its termination shall be subject to the requirements and penalties of the U.S. Copyright Act, 17 U.S.C. § 101 et seq., the equivalent laws of other countries, and international treaty. This section shall survive the termination of this License.

12) Attorneys Fees. In any action to enforce the terms of this License or seeking damages relating thereto, the prevailing party shall be entitled to recover its costs and expenses, including, without limitation, reasonable attorneys' fees and costs incurred in connection with such action, including any appeal of such action. This section shall survive the termination of this License.

13) Miscellaneous. This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable.

14) Definition of "You" in This License. "You" throughout this License, whether in upper or lower case, means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, "You" includes any entity that controls, is controlled by, or is under common control with you. For purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

15) Right to Use. You may use the Original Work in all ways not otherwise restricted or conditioned by this License or by law, and Licensor promises not to interfere with or be responsible for such uses by You.

This license is Copyright (C) 2003-2004 Lawrence E. Rosen. All rights reserved.

Permission is hereby granted to copy and distribute this license without modification. This license may not be modified without the express written permission of its copyright owner.

# Apache software license, version 2.0

Apache License

Version 2.0, January 2004

http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.

"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:

a.You must give any other recipients of the Work or Derivative Works a copy of this License; and

b.You must cause any modified files to carry prominent notices stating that You changed the files; and

c.You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and

d.If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.

You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work

To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

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.

# Zero-Clause BSD (0BSD)

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

# BSD 2-clause "Simplified" license

Copyright <YEAR> <COPYRIGHT HOLDER>

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# BSD 3-clause "Modified" license

Copyright <YEAR> <COPYRIGHT HOLDER>

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# BSD 4-clause "Original" license

Copyright (c) <year> <owner> . All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. All advertising materials mentioning features or use of this software must display the following acknowledgement:

This product includes software developed by the organization.

4. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY COPYRIGHT HOLDER "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# Creative Commons CC0 1.0 Universal

CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER.

Statement of Purpose

The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work").

Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others.

For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights.

1. Copyright and Related Rights.
A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following:

i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work;

ii. moral rights retained by the original author(s) and/or performer(s);

iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work;

iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below;

v. rights protecting the extraction, dissemination, use and reuse of data in a Work;

vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and

vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof.

2. Waiver.
To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose.

3. Public License Fallback.
Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose.

4. Limitations and Disclaimers.

a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document.

b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law.

c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work.

d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work.

# Creative Commons Attribution-ShareAlike 2.0

CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE.

License

THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.

BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.

1. Definitions

a. "Collective Work" means a work, such as a periodical issue, anthology or encyclopedia, in which the Work in its entirety in unmodified form, along with a number of other contributions, constituting separate and independent works in themselves, are assembled into a collective whole. A work that constitutes a Collective Work will not be considered a Derivative Work (as defined below) for the purposes of this License.

b. "Derivative Work" means a work based upon the Work or upon the Work and other pre-existing works, such as a translation, musical arrangement, dramatization, fictionalization, motion picture version, sound recording, art reproduction, abridgment, condensation, or any other form in which the Work may be recast, transformed, or adapted, except that a work that constitutes a Collective Work will not be considered a Derivative Work for the purpose of this License. For the avoidance of doubt, where the Work is a musical composition or sound recording, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered a Derivative Work for the purpose of this License.

c. "Licensor" means the individual or entity that offers the Work under the terms of this License.

d. "Original Author" means the individual or entity who created the Work.

e. "Work" means the copyrightable work of authorship offered under the terms of this License.

f. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.

g."License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike.

2. Fair Use Rights.

Nothing in this license is intended to reduce, limit, or restrict any rights arising from fair use, first sale or other limitations on the exclusive rights of the copyright owner under copyright law or other applicable laws.

3. License Grant.

Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:

a. to reproduce the Work, to incorporate the Work into one or more Collective Works, and to reproduce the Work as incorporated in the Collective Works;

b. to create and reproduce Derivative Works;

c. to distribute copies or phonorecords of, display publicly, perform publicly, and perform publicly by means of a digital audio transmission the Work including as incorporated in Collective Works;

d. to distribute copies or phonorecords of, display publicly, perform publicly, and perform publicly by means of a digital audio transmission Derivative Works.

e.For the avoidance of doubt, where the work is a musical composition:

i.Performance Royalties Under Blanket Licenses. Licensor waives the exclusive right to collect, whether individually or via a performance rights society (e.g. ASCAP, BMI, SESAC), royalties for the public performance or public digital performance (e.g. webcast) of the Work.

ii.Mechanical Rights and Statutory Royalties. Licensor waives the exclusive right to collect, whether individually or via a music rights society or designated agent (e.g. Harry Fox Agency), royalties for any phonorecord You create from the Work ("cover version") and distribute, subject to the compulsory license created by 17 USC Section 115 of the US Copyright Act (or the equivalent in other jurisdictions).

f.Webcasting Rights and Statutory Royalties. For the avoidance of doubt, where the Work is a sound recording, Licensor waives the exclusive right to collect, whether individually or via a performance-rights society (e.g. SoundExchange), royalties for the public digital performance (e.g. webcast) of the Work, subject to the compulsory license created by 17 USC Section 114 of the US Copyright Act (or the equivalent in other jurisdictions).

The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. All rights not expressly granted by Licensor are hereby reserved.

4. Restrictions.

The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:

a. You may distribute, publicly display, publicly perform, or publicly digitally perform the Work only under the terms of this License, and You must include a copy of, or the Uniform Resource Identifier for, this License with every copy or phonorecord of the Work You distribute, publicly display, publicly perform, or publicly digitally perform. You may not offer or impose any terms on the Work that alter or restrict the terms of this License or the recipients' exercise of the rights granted hereunder. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties. You may not distribute, publicly display, publicly perform, or publicly digitally perform the Work with any technological measures that control access or use of the Work in a manner inconsistent with the terms of this License Agreement. The above applies to the Work as incorporated in a Collective Work, but this does not require the Collective Work apart from the Work itself to be made subject to the terms of this License. If You create a Collective Work, upon notice from any Licensor You must, to the extent practicable, remove from the Collective Work any reference to such Licensor or the Original Author, as requested. If You create a Derivative Work, upon notice from any Licensor You must, to the extent practicable, remove from the Derivative Work any reference to such Licensor or the Original Author, as requested.

b. You may distribute, publicly display, publicly perform, or publicly digitally perform a Derivative Work only under the terms of this License, a later version of this License with the same License Elements as this License, or a Creative Commons iCommons license that contains the same License Elements as this License (e.g. Attribution-ShareAlike 2.0 Japan). You must include a copy of, or the Uniform Resource Identifier for, this License or other license specified in the previous sentence with every copy or phonorecord of each Derivative Work You distribute, publicly display, publicly perform, or publicly digitally perform. You may not offer or impose any terms on the Derivative Works that alter or restrict the terms of this License or the recipients' exercise of the rights granted hereunder, and You must keep intact all notices that refer to this License and to the disclaimer of warranties. You may not distribute, publicly display, publicly perform, or publicly digitally perform the Derivative Work with any technological measures that control access or use of the Work in a manner inconsistent with the terms of this License Agreement. The above applies to the Derivative Work as incorporated in a Collective Work, but this does not require the Collective Work apart from the Derivative Work itself to be made subject to the terms of this License.

c. If you distribute, publicly display, publicly perform, or publicly digitally perform the Work or any Derivative Works or Collective Works, You must keep intact all copyright notices for the Work and give the Original Author credit reasonable to the medium or means You are utilizing by conveying the name (or pseudonym if applicable) of the Original Author if supplied; the title of the Work if supplied; to the extent reasonably practicable, the Uniform Resource Identifier, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and in the case of a Derivative Work, a credit identifying the use of the Work in the Derivative Work (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). Such credit may be implemented in any reasonable manner; provided, however, that in the case of a Derivative Work or Collective Work, at a minimum such credit will appear where any other comparable authorship credit appears and in a manner at least as prominent as such other comparable authorship credit.

5. Representations, Warranties and Disclaimer

UNLESS OTHERWISE AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE MATERIALS, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.

6. Limitation on Liability.

EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

7. Termination

a. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Derivative Works or Collective Works from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.

b. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.

8. Miscellaneous

a. Each time You distribute or publicly digitally perform the Work or a Collective Work, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.

b. Each time You distribute or publicly digitally perform a Derivative Work, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.

c. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.

d. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent.

e. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.

Creative Commons is not a party to this License, and makes no warranty whatsoever in connection with the Work. Creative Commons will not be liable to You or any party on any legal theory for any damages whatsoever, including without limitation any general, special, incidental or consequential damages arising in connection to this license. Notwithstanding the foregoing two (2) sentences, if Creative Commons has expressly identified itself as the Licensor hereunder, it shall have all rights and obligations of Licensor.

Except for the limited purpose of indicating to the public that the Work is licensed under the CCPL, neither party will use the trademark "Creative Commons" or any related trademark or logo of Creative Commons without the prior written consent of Creative Commons. Any permitted use will be in compliance with Creative Commons' then-current trademark usage guidelines, as may be published on its website or otherwise made available upon request from time to time.

Creative Commons may be contacted at https://creativecommons.org/.

# Creative Commons Attribution-ShareAlike 3.0 Unported License

CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE.

License

THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.

BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.

1. Definitions

a."Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License.

b."Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined below) for the purposes of this License.

c."Creative Commons Compatible License" means a license that is listed at https://creativecommons.org/compatiblelicenses that has been approved by Creative Commons as being essentially equivalent to this License, including, at a minimum, because that license: (i) contains terms that have the same purpose, meaning and effect as the License Elements of this License; and, (ii) explicitly permits the relicensing of adaptations of works made available under that license under this License or a Creative Commons jurisdiction license with the same License Elements as this License.

d."Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership.

e."License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike.

f."Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.

g."Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast.

h."Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work.

i."You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.

j."Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images.

k."Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium.

2. Fair Dealing Rights.

Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.

3. License Grant.

Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:

a.to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections;

b.to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified.";

c.to Distribute and Publicly Perform the Work including as incorporated in Collections; and,

d.to Distribute and Publicly Perform Adaptations.

e.For the avoidance of doubt:

i.Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;

ii.Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and,

iii.Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License.

The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved.

4. Restrictions.

The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:

a.You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(c), as requested.

b.You may Distribute or Publicly Perform an Adaptation only under the terms of: (i) this License; (ii) a later version of this License with the same License Elements as this License; (iii) a Creative Commons jurisdiction license (either this or a later license version) that contains the same License Elements as this License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible License. If you license the Adaptation under one of the licenses mentioned in (iv), you must comply with the terms of that license. If you license the Adaptation under the terms of any of the licenses mentioned in (i), (ii) or (iii) (the "Applicable License"), you must comply with the terms of the Applicable License generally and the following provisions: (I) You must include a copy of, or the URI for, the Applicable License with every copy of each Adaptation You Distribute or Publicly Perform; (II) You may not offer or impose any terms on the Adaptation that restrict the terms of the Applicable License or the ability of the recipient of the Adaptation to exercise the rights granted to that recipient under the terms of the Applicable License; (III) You must keep intact all notices that refer to the Applicable License and to the disclaimer of warranties with every copy of the Work as included in the Adaptation You Distribute or Publicly Perform; (IV) when You Distribute or Publicly Perform the Adaptation, You may not impose any effective technological measures on the Adaptation that restrict the ability of a recipient of the Adaptation from You to exercise the rights granted to that recipient under the terms of the Applicable License. This Section 4(b) applies to the Adaptation as incorporated in a Collection, but this does not require the Collection apart from the Adaptation itself to be made subject to the terms of the Applicable License.

c.If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Ssection 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.

d.Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise.

5. Representations, Warranties and Disclaimer

UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.

6. Limitation on Liability.

EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

7. Termination

a.This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.

b.Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.

8. Miscellaneous

a.Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.

b.Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.

c.If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.

d.No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent.

e.This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.

f.The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.

Creative Commons Notice

Creative Commons is not a party to this License, and makes no warranty whatsoever in connection with the Work. Creative Commons will not be liable to You or any party on any legal theory for any damages whatsoever, including without limitation any general, special, incidental or consequential damages arising in connection to this license. Notwithstanding the foregoing two (2) sentences, if Creative Commons has expressly identified itself as the Licensor hereunder, it shall have all rights and obligations of Licensor.

Except for the limited purpose of indicating to the public that the Work is licensed under the CCPL, Creative Commons does not authorize the use by either party of the trademark "Creative Commons" or any related trademark or logo of Creative Commons without the prior written consent of Creative Commons. Any permitted use will be in compliance with Creative Commons' then-current trademark usage guidelines, as may be published on its website or otherwise made available upon request from time to time. For the avoidance of doubt, this trademark restriction does not form part of the License.

Creative Commons may be contacted at https://creativecommons.org/.

# Creative Commons Attribution 4.0 International Public License

By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions.

## Section 1 – Definitions.

a. Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image.

b. Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License.

c. Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.

d. Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements.

e. Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material.

f. Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License.

g. Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license.

h. Licensor means the individual(s) or entity(ies) granting rights under this Public License.

i. Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them.

j. Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world.

k. You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning.

## Section 2 – Scope.

a. License grant.

1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to:

A. reproduce and Share the Licensed Material, in whole or in part; and

B. produce, reproduce, and Share Adapted Material.

2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions.

3. Term. The term of this Public License is specified in Section 6(a).

4. Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material.

5. Downstream recipients.

A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License.

B. No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material.

6. No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i).

b. Other rights.

1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise.

2. Patent and trademark rights are not licensed under this Public License.

3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties.

## Section 3 – License Conditions.

Your exercise of the Licensed Rights is expressly made subject to the following conditions.

a. Attribution.

1. If You Share the Licensed Material (including in modified form), You must:

A. retain the following if it is supplied by the Licensor with the Licensed Material:

i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated);

ii. a copyright notice;

iii. a notice that refers to this Public License;

iv. a notice that refers to the disclaimer of warranties;

v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable;

B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and

C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License.

2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information.

3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable.

4. If You Share Adapted Material You produce, the Adapter's License You apply must not prevent recipients of the Adapted Material from complying with this Public License.

## Section 4 – Sui Generis Database Rights.

Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material:

a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database;

b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and

c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database.

For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights.

## Section 5 – Disclaimer of Warranties and Limitation of Liability.

a. Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You.

b. To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You.

c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability.

## Section 6 – Term and Termination.

a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically.

b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates:

1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or

2. upon express reinstatement by the Licensor.

For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License.

c. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License.

d. Sections 1, 5, 6, 7, and 8 survive termination of this Public License.

## Section 7 – Other Terms and Conditions.

a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed.

b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License.

## Section 8 – Interpretation.

a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License.

b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions.

c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor.

d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority.

Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses.

Creative Commons may be contacted at creativecommons.org.

# GNU General Public License, GPL V2

GNU GENERAL PUBLIC LICENSE

Version 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc.

51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

Everyone is permitted to copy and distribute verbatim copies

of this license document, but changing it is not allowed.

Preamble

The licenses for most software are designed to take away your

freedom to share and change it. By contrast, the GNU General Public

License is intended to guarantee your freedom to share and change free

software--to make sure the software is free for all its users. This

General Public License applies to most of the Free Software

Foundation's software and to any other program whose authors commit to

using it. (Some other Free Software Foundation software is covered by

the GNU Library General Public License instead.) You can apply it to

your programs, too.

When we speak of free software, we are referring to freedom, not

price. Our General Public Licenses are designed to make sure that you

have the freedom to distribute copies of free software (and charge for

this service if you wish), that you receive source code or can get it

if you want it, that you can change the software or use pieces of it

in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid

anyone to deny you these rights or to ask you to surrender the rights.

These restrictions translate to certain responsibilities for you if you

distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether

gratis or for a fee, you must give the recipients all the rights that

you have. You must make sure that they, too, receive or can get the

source code. And you must show them these terms so they know their

rights.

We protect your rights with two steps: (1) copyright the software, and

(2) offer you this license which gives you legal permission to copy,

distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain

that everyone understands that there is no warranty for this free

software. If the software is modified by someone else and passed on, we

want its recipients to know that what they have is not the original, so

that any problems introduced by others will not reflect on the original

authors' reputations.

Finally, any free program is threatened constantly by software

patents. We wish to avoid the danger that redistributors of a free

program will individually obtain patent licenses, in effect making the

program proprietary. To prevent this, we have made it clear that any

patent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and

modification follow.

GNU GENERAL PUBLIC LICENSE

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which contains

a notice placed by the copyright holder saying it may be distributed

under the terms of this General Public License. The "Program", below,

refers to any such program or work, and a "work based on the Program"

means either the Program or any derivative work under copyright law:

that is to say, a work containing the Program or a portion of it,

either verbatim or with modifications and/or translated into another

language. (Hereinafter, translation is included without limitation in

the term "modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not

covered by this License; they are outside its scope. The act of

running the Program is not restricted, and the output from the Program

is covered only if its contents constitute a work based on the

Program (independent of having been made by running the Program).

Whether that is true depends on what the Program does.

1. You may copy and distribute verbatim copies of the Program's

source code as you receive it, in any medium, provided that you

conspicuously and appropriately publish on each copy an appropriate

copyright notice and disclaimer of warranty; keep intact all the

notices that refer to this License and to the absence of any warranty;

and give any other recipients of the Program a copy of this License

along with the Program.

You may charge a fee for the physical act of transferring a copy, and

you may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Program or any portion

of it, thus forming a work based on the Program, and copy and

distribute such modifications or work under the terms of Section 1

above, provided that you also meet all of these conditions:

a) You must cause the modified files to carry prominent notices

stating that you changed the files and the date of any change.

b) You must cause any work that you distribute or publish, that in

whole or in part contains or is derived from the Program or any

part thereof, to be licensed as a whole at no charge to all third

parties under the terms of this License.

c) If the modified program normally reads commands interactively

when run, you must cause it, when started running for such

interactive use in the most ordinary way, to print or display an

announcement including an appropriate copyright notice and a

notice that there is no warranty (or else, saying that you provide

a warranty) and that users may redistribute the program under

these conditions, and telling the user how to view a copy of this

License. (Exception: if the Program itself is interactive but

does not normally print such an announcement, your work based on

the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole. If

identifiable sections of that work are not derived from the Program,

and can be reasonably considered independent and separate works in

themselves, then this License, and its terms, do not apply to those

sections when you distribute them as separate works. But when you

distribute the same sections as part of a whole which is a work based

on the Program, the distribution of the whole must be on the terms of

this License, whose permissions for other licensees extend to the

entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest

your rights to work written entirely by you; rather, the intent is to

exercise the right to control the distribution of derivative or

collective works based on the Program.

In addition, mere aggregation of another work not based on the Program

with the Program (or with a work based on the Program) on a volume of

a storage or distribution medium does not bring the other work under

the scope of this License.

3. You may copy and distribute the Program (or a work based on it,

under Section 2) in object code or executable form under the terms of

Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable

source code, which must be distributed under the terms of Sections

1 and 2 above on a medium customarily used for software interchange; or,

b) Accompany it with a written offer, valid for at least three

years, to give any third party, for a charge no more than your

cost of physically performing source distribution, a complete

machine-readable copy of the corresponding source code, to be

distributed under the terms of Sections 1 and 2 above on a medium

customarily used for software interchange; or,

c) Accompany it with the information you received as to the offer

to distribute corresponding source code. (This alternative is

allowed only for noncommercial distribution and only if you

received the program in object code or executable form with such

an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for

making modifications to it. For an executable work, complete source

code means all the source code for all modules it contains, plus any

associated interface definition files, plus the scripts used to

control compilation and installation of the executable. However, as a

special exception, the source code distributed need not include

anything that is normally distributed (in either source or binary

form) with the major components (compiler, kernel, and so on) of the

operating system on which the executable runs, unless that component

itself accompanies the executable.

If distribution of executable or object code is made by offering

access to copy from a designated place, then offering equivalent

access to copy the source code from the same place counts as

distribution of the source code, even though third parties are not

compelled to copy the source along with the object code.

4. You may not copy, modify, sublicense, or distribute the Program

except as expressly provided under this License. Any attempt

otherwise to copy, modify, sublicense or distribute the Program is

void, and will automatically terminate your rights under this License.

However, parties who have received copies, or rights, from you under

this License will not have their licenses terminated so long as such

parties remain in full compliance.

5. You are not required to accept this License, since you have not

signed it. However, nothing else grants you permission to modify or

distribute the Program or its derivative works. These actions are

prohibited by law if you do not accept this License. Therefore, by

modifying or distributing the Program (or any work based on the

Program), you indicate your acceptance of this License to do so, and

all its terms and conditions for copying, distributing or modifying

the Program or works based on it.

6. Each time you redistribute the Program (or any work based on the

Program), the recipient automatically receives a license from the

original licensor to copy, distribute or modify the Program subject to

these terms and conditions. You may not impose any further

restrictions on the recipients' exercise of the rights granted herein.

You are not responsible for enforcing compliance by third parties to

this License.

7. If, as a consequence of a court judgment or allegation of patent

infringement or for any other reason (not limited to patent issues),

conditions are imposed on you (whether by court order, agreement or

otherwise) that contradict the conditions of this License, they do not

excuse you from the conditions of this License. If you cannot

distribute so as to satisfy simultaneously your obligations under this

License and any other pertinent obligations, then as a consequence you

may not distribute the Program at all. For example, if a patent

license would not permit royalty-free redistribution of the Program by

all those who receive copies directly or indirectly through you, then

the only way you could satisfy both it and this License would be to

refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under

any particular circumstance, the balance of the section is intended to

apply and the section as a whole is intended to apply in other

circumstances.

It is not the purpose of this section to induce you to infringe any

patents or other property right claims or to contest validity of any

such claims; this section has the sole purpose of protecting the

integrity of the free software distribution system, which is

implemented by public license practices. Many people have made

generous contributions to the wide range of software distributed

through that system in reliance on consistent application of that

system; it is up to the author/donor to decide if he or she is willing

to distribute software through any other system and a licensee cannot

impose that choice.

This section is intended to make thoroughly clear what is believed to

be a consequence of the rest of this License.

8. If the distribution and/or use of the Program is restricted in

certain countries either by patents or by copyrighted interfaces, the

original copyright holder who places the Program under this License

may add an explicit geographical distribution limitation excluding

those countries, so that distribution is permitted only in or among

countries not thus excluded. In such case, this License incorporates

the limitation as if written in the body of this License.

9. The Free Software Foundation may publish revised and/or new versions

of the General Public License from time to time. Such new versions will

be similar in spirit to the present version, but may differ in detail to

address new problems or concerns.

Each version is given a distinguishing version number. If the Program

specifies a version number of this License which applies to it and "any

later version", you have the option of following the terms and conditions

either of that version or of any later version published by the Free

Software Foundation. If the Program does not specify a version number of

this License, you may choose any version ever published by the Free Software

Foundation.

10. If you wish to incorporate parts of the Program into other free

programs whose distribution conditions are different, write to the author

to ask for permission. For software which is copyrighted by the Free

Software Foundation, write to the Free Software Foundation; we sometimes

make exceptions for this. Our decision will be guided by the two goals

of preserving the free status of all derivatives of our free software and

of promoting the sharing and reuse of software generally.

NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY

FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN

OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES

PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED

OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF

MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS

TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE

PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,

REPAIR OR CORRECTION.

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING

WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR

REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,

INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING

OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED

TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY

YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER

PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE

POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS

How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest

possible use to the public, the best way to achieve this is to make it

free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest

to attach them to the start of each source file to most effectively

convey the exclusion of warranty; and each file should have at least

the "copyright" line and a pointer to where the full notice is found.

<one line to give the program's name and a brief idea of what it does.>

Copyright (C) <year> <name of author>

This program is free software; you can redistribute it and/or modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation; either version 2 of the License, or

(at your option) any later version.

This program is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

GNU General Public License for more details.

You should have received a copy of the GNU General Public License

along with this program; if not, write to the Free Software

Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this

when it starts in an interactive mode:

Gnomovision version 69, Copyright (C) year name of author

Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.

This is free software, and you are welcome to redistribute it

under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate

parts of the General Public License. Of course, the commands you use may

be called something other than `show w' and `show c'; they could even be

mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your

school, if any, to sign a "copyright disclaimer" for the program, if

necessary. Here is a sample; alter the names:

Yoyodyne, Inc., hereby disclaims all copyright interest in the program

`Gnomovision' (which makes passes at compilers) written by James Hacker.

<signature of Ty Coon>, 1 April 1989

Ty Coon, President of Vice

This General Public License does not permit incorporating your program into

proprietary programs. If your program is a subroutine library, you may

consider it more useful to permit linking proprietary applications with the

library. If this is what you want to do, use the GNU Library General

Public License instead of this License.

# ISC license

Copyright <YEAR> <OWNER>

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

# Inno Setup License

Except where otherwise noted, all of the documentation and software included in the Inno Setup package is copyrighted by Jordan Russell.

Copyright (C) 1997-2021 Jordan Russell. All rights reserved.
Portions Copyright (C) 2000-2021 Martijn Laan. All rights reserved.

This software is provided "as-is," without any express or implied warranty. In no event shall the author be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter and redistribute it, provided that the following conditions are met:

1. All redistributions of source code files must retain all copyright notices that are currently in place, and this list of conditions without modification.

2. All redistributions in binary form must retain all occurrences of the above copyright notice and web site addresses that are currently in place (for example, in the About boxes).

3. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software to distribute a product, an acknowledgment in the product documentation would be appreciated but is not required.

4. Modified versions in source or binary form must be plainly marked as such, and must not be misrepresented as being the original software.

Jordan Russell
jr-2010 AT jrsoftware.org
http://www.jrsoftware.org/

# MIT license (MIT)

The MIT License (MIT)

Copyright (c) <year> <copyright holders>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

# MICROSOFT SOFTWARE LICENSE TERMS

MICROSOFT .NET LIBRARY

These license terms are an agreement between you and Microsoft Corporation (or based on where you live, one of its affiliates). They apply to the software named above. The terms also apply to any Microsoft services or updates for the software, except to the extent those have different terms.

IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE RIGHTS BELOW.

1. INSTALLATION AND USE RIGHTS.

You may install and use any number of copies of the software to develop and test your applications.

2. THIRD PARTY COMPONENTS. The software may include third party components with separate legal notices or governed by other agreements, as may be described in the ThirdPartyNotices file(s) accompanying the software.

3. ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS.

a. DISTRIBUTABLE CODE. The software is comprised of Distributable Code. “Distributable Code” is code that you are permitted to distribute in applications you develop if you comply with the terms below.

i. Right to Use and Distribute.

• You may copy and distribute the object code form of the software.

• Third Party Distribution. You may permit distributors of your applications to copy and distribute the Distributable Code as part of those applications.

ii. Distribution Requirements. For any Distributable Code you distribute, you must

• use the Distributable Code in your applications and not as a standalone distribution;

• require distributors and external end users to agree to terms that protect it at least as much as this agreement; and

• indemnify, defend, and hold harmless Microsoft from any claims, including attorneys’ fees, related to the distribution or use of your applications, except to the extent that any claim is based solely on the unmodified Distributable Code.

iii. Distribution Restrictions. You may not

• use Microsoft’s trademarks in your applications’ names or in a way that suggests your applications come from or are endorsed by Microsoft; or

• modify or distribute the source code of any Distributable Code so that any part of it becomes subject to an Excluded License. An “Excluded License” is one that requires, as a condition of use, modification or distribution of code, that (i) it be disclosed or distributed in source code form; or (ii) others have the right to modify it.

4. DATA.

a. Data Collection. The software may collect information about you and your use of the software, and send that to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may opt-out of many of these scenarios, but not all, as described in the software documentation. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with Microsoft’s privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and its use from the software documentation and our privacy statement. Your use of the software operates as your consent to these practices.

b. Processing of Personal Data. To the extent Microsoft is a processor or subprocessor of personal data in connection with the software, Microsoft makes the commitments in the European Union General Data Protection Regulation Terms of the Online Services Terms to all customers effective May 25, 2018, at https://docs.microsoft.com/en-us/legal/gdpr.

5. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not

• work around any technical limitations in the software;

• reverse engineer, decompile or disassemble the software, or otherwise attempt to derive the source code for the software, except and to the extent required by third party licensing terms governing use of certain open source components that may be included in the software;

• remove, minimize, block or modify any notices of Microsoft or its suppliers in the software;

• use the software in any way that is against the law; or

• share, publish, rent or lease the software, provide the software as a stand-alone offering for others to use, or transfer the software or this agreement to any third party.

6. EXPORT RESTRICTIONS. You must comply with all domestic and international export laws and regulations that apply to the software, which include restrictions on destinations, end users, and end use. For further information on export restrictions, visit www.microsoft.com/exporting.

7. SUPPORT SERVICES. Because this software is “as is,” we may not provide support services for it.

8. ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the software and support services.

9. APPLICABLE LAW. If you acquired the software in the United States, Washington law applies to interpretation of and claims for breach of this agreement, and the laws of the state where you live apply to all other claims. If you acquired the software in any other country, its laws apply.

10. CONSUMER RIGHTS; REGIONAL VARIATIONS. This agreement describes certain legal rights. You may have other rights, including consumer rights, under the laws of your state or country. Separate and apart from your relationship with Microsoft, you may also have rights with respect to the party from which you acquired the software. This agreement does not change those other rights if the laws of your state or country do not permit it to do so. For example, if you acquired the software in one of the below regions, or mandatory country law applies, then the following provisions apply to you:

a) Australia. You have statutory guarantees under the Australian Consumer Law and nothing in this agreement is intended to affect those rights.

b) Canada. If you acquired this software in Canada, you may stop receiving updates by turning off the automatic update feature, disconnecting your device from the Internet (if and when you re-connect to the Internet, however, the software will resume checking for and installing updates), or uninstalling the software. The product documentation, if any, may also specify how to turn off updates for your specific device or software.

c) Germany and Austria.

(i) Warranty. The software will perform substantially as described in any Microsoft materials that accompany it. However, Microsoft gives no contractual guarantee in relation to the software.

(ii) Limitation of Liability. In case of intentional conduct, gross negligence, claims based on the Product Liability Act, as well as in case of death or personal or physical injury, Microsoft is liable according to the statutory law.

Subject to the foregoing clause (ii), Microsoft will only be liable for slight negligence if Microsoft is in breach of such material contractual obligations, the fulfillment of which facilitate the due performance of this agreement, the breach of which would endanger the purpose of this agreement and the compliance with which a party may constantly trust in (so-called "cardinal obligations"). In other cases of slight negligence, Microsoft will not be liable for slight negligence

11. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS-IS.” YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.

12. LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES.

This limitation applies to (a) anything related to the software, services, content (including code) on third party Internet sites, or third party applications; and (b) claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law.

It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your state or country may not allow the exclusion or limitation of incidental, consequential or other damages.

# Mozilla Public License

MOZILLA PUBLIC LICENSE

Version 1.1

1. Definitions.

1.0.1. "Commercial Use" means distribution or otherwise making the Covered Code available to a third party.

1.1. "Contributor" means each entity that creates or contributes to the creation of Modifications.

1.2. "Contributor Version" means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor.

1.3. "Covered Code" means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof.

1.4. "Electronic Distribution Mechanism" means a mechanism generally accepted in the software development community for the electronic transfer of data.

1.5. "Executable" means Covered Code in any form other than Source Code.

1.6. "Initial Developer" means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A.

1.7. "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.

1.8. "License" means this document.

1.8.1. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein.

1.9. "Modifications" means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications.

B. Any new file that contains any part of the Original Code or previous Modifications.

1.10. "Original Code" means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License.

1.10.1. "Patent Claims" means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor.

1.11. "Source Code" means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor's choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge.

1.12. "You" (or "Your") means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, "You" includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity.

2. Source Code License.

2.1. The Initial Developer Grant.

The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims:

(a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and

(b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof).

(c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License.

(d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices.

2.2. Contributor Grant.

Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license

(a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and

(b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination).

(c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code.

(d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor.

3. Distribution Obligations.

3.1. Application of License.

The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients' rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5.

3.2. Availability of Source Code.

Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party.

3.3. Description of Modifications.

You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code.

3.4. Intellectual Property Matters

(a) Third Party Claims. If Contributor has knowledge that a license under a third party's intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled "LEGAL" which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained.

(b) Contributor APIs. If Contributor's Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file.

(c) Representations. Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor's Modifications are Contributor's original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License.

3.5. Required Notices.

You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients' rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer.

3.6. Distribution of Executable Versions.

You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients' rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient's rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or any Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer.

3.7. Larger Works.

You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code.

4. Inability to Comply Due to Statute or Regulation.

If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it.

5. Application of this License.

This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code.

6. Versions of the License.

6.1. New Versions.

Netscape Communications Corporation ("Netscape") may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number.

6.2. Effect of New Versions.

Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Netscape. No one other than Netscape has the right to modify the terms applicable to Covered Code created under this License.

6.3. Derivative Works.

If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", "MPL", "NPL" or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the Mozilla Public License and Netscape Public License. (Filling in the name of the Initial Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.)

7. DISCLAIMER OF WARRANTY.

COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.

8. TERMINATION.

8.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive.

8.2. If You initiate litigation by asserting a patent infringement claim (excluding declaratory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You file such action is referred to as "Participant") alleging that:

(a) such Participant's Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above.

(b) any software, hardware, or device, other than such Participant's Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant.

8.3. If You assert a patent infringement claim against Participant alleging that such Participant's Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license.

8.4. In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination.

9. LIMITATION OF LIABILITY.

UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.

10. U.S. GOVERNMENT END USERS.

The Covered Code is a "commercial item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" and "commercial computer software documentation," as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein.

11. MISCELLANEOUS.

This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys' fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License.

12. RESPONSIBILITY FOR CLAIMS.

As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability.

13. MULTIPLE-LICENSED CODE.

Initial Developer may designate portions of the Covered Code as "Multiple-Licensed". "Multiple-Licensed" means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the NPL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A.

EXHIBIT A -Mozilla Public License.

"The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/

Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.

The Original Code is ______________________________________.

The Initial Developer of the Original Code is ________________________. Portions created by ______________________ are Copyright (C) _____________________________. All Rights Reserved.

Contributor(s): ______________________________________.

Alternatively, the contents of this file may be used under the terms of the _____ license (the "[___] License"), in which case the provisions of [______] License are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the MPL or the [___] License."

[NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.]

# ODC Attribution License (ODC-By)

## Preamble

The Open Data Commons Attribution License is a license agreement intended to allow users to freely share, modify, and use this Database subject only to the attribution requirements set out in Section 4.

Databases can contain a wide variety of types of content (images, audiovisual material, and sounds all in the same database, for example), and so this license only governs the rights over the Database, and not the contents of the Database individually. Licensors may therefore wish to use this license together with another license for the contents.

Sometimes the contents of a database, or the database itself, can be covered by other rights not addressed here (such as private contracts, trademark over the name, or privacy rights / data protection rights over information in the contents), and so you are advised that you may have to consult other documents or clear other rights before doing activities not covered by this License.

------

The Licensor (as defined below)

and

You (as defined below)

agree as follows:

## 1.0 Definitions of Capitalised Words

"Collective Database" - Means this Database in unmodified form as part of a collection of independent databases in themselves that together are assembled into a collective whole. A work that constitutes a Collective Database will not be considered a Derivative Database.

"Convey" - As a verb, means Using the Database, a Derivative Database, or the Database as part of a Collective Database in any way that enables a Person to make or receive copies of the Database or a Derivative Database. Conveying does not include interaction with a user through a computer network, or creating and Using a Produced Work, where no transfer of a copy of the Database or a Derivative Database occurs.

"Contents" - The contents of this Database, which includes the information, independent works, or other material collected into the Database. For example, the contents of the Database could be factual data or works such as images, audiovisual material, text, or sounds.

"Database" - A collection of material (the Contents) arranged in a systematic or methodical way and individually accessible by electronic or other means offered under the terms of this License.

"Database Directive" - Means Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended or succeeded.

"Database Right" - Means rights resulting from the Chapter III ("sui generis") rights in the Database Directive (as amended and as transposed by member states), which includes the Extraction and Re-utilisation of the whole or a Substantial part of the Contents, as well as any similar rights available in the relevant jurisdiction under Section 10.4.

"Derivative Database" - Means a database based upon the Database, and includes any translation, adaptation, arrangement, modification, or any other alteration of the Database or of a Substantial part of the Contents. This includes, but is not limited to, Extracting or Re-utilising the whole or a Substantial part of the Contents in a new Database.

"Extraction" - Means the permanent or temporary transfer of all or a Substantial part of the Contents to another medium by any means or in any form.

"License" - Means this license agreement and is both a license of rights such as copyright and Database Rights and an agreement in contract.

"Licensor" - Means the Person that offers the Database under the terms of this License.

"Person" - Means a natural or legal person or a body of persons corporate or incorporate.

"Produced Work" - a work (such as an image, audiovisual material, text, or sounds) resulting from using the whole or a Substantial part of the Contents (via a search or other query) from this Database, a Derivative Database, or this Database as part of a Collective Database.

"Publicly" - means to Persons other than You or under Your control by either more than 50% ownership or by the power to direct their activities (such as contracting with an independent consultant).

"Re-utilisation" - means any form of making available to the public all or a Substantial part of the Contents by the distribution of copies, by renting, by online or other forms of transmission.

"Substantial" - Means substantial in terms of quantity or quality or a combination of both. The repeated and systematic Extraction or Re-utilisation of insubstantial parts of the Contents may amount to the Extraction or Re-utilisation of a Substantial part of the Contents.

"Use" - As a verb, means doing any act that is restricted by copyright or Database Rights whether in the original medium or any other; and includes without limitation distributing, copying, publicly performing, publicly displaying, and preparing derivative works of the Database, as well as modifying the Database as may be technically necessary to use it in a different mode or format.

"You" - Means a Person exercising rights under this License who has not previously violated the terms of this License with respect to the Database, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.

Words in the singular include the plural and vice versa.

## 2.0 What this License covers

2.1. Legal effect of this document. This License is:

a. A license of applicable copyright and neighbouring rights;

b. A license of the Database Right; and

c. An agreement in contract between You and the Licensor.

2.2 Legal rights covered. This License covers the legal rights in the Database, including:

a. Copyright. Any copyright or neighbouring rights in the Database. The copyright licensed includes any individual elements of the Database, but does not cover the copyright over the Contents independent of this Database. See Section 2.4 for details. Copyright law varies between jurisdictions, but is likely to cover: the Database model or schema, which is the structure, arrangement, and organisation of the Database, and can also include the Database tables and table indexes; the data entry and output sheets; and the Field names of Contents stored in the Database;

b. Database Rights. Database Rights only extend to the Extraction and Re-utilisation of the whole or a Substantial part of the Contents. Database Rights can apply even when there is no copyright over the Database. Database Rights can also apply when the Contents are removed from the Database and are selected and arranged in a way that would not infringe any applicable copyright; and

c. Contract. This is an agreement between You and the Licensor for access to the Database. In return you agree to certain conditions of use on this access as outlined in this License.

2.3 Rights not covered.

a. This License does not apply to computer programs used in the making or operation of the Database;

b. This License does not cover any patents over the Contents or the Database; and

c. This License does not cover any trademarks associated with the Database.

2.4 Relationship to Contents in the Database. The individual items of the Contents contained in this Database may be covered by other rights, including copyright, patent, data protection, privacy, or personality rights, and this License does not cover any rights (other than Database Rights or in contract) in individual Contents contained in the Database. For example, if used on a Database of images (the Contents), this License would not apply to copyright over individual images, which could have their own separate licenses, or one single license covering all of the rights over the images.

## 3.0 Rights granted

3.1 Subject to the terms and conditions of this License, the Licensor grants to You a worldwide, royalty-free, non-exclusive, terminable (but only under Section 9) license to Use the Database for the duration of any applicable copyright and Database Rights. These rights explicitly include commercial use, and do not exclude any field of endeavour. To the extent possible in the relevant jurisdiction, these rights may be exercised in all media and formats whether now known or created in the future.

The rights granted cover, for example:

a. Extraction and Re-utilisation of the whole or a Substantial part of the Contents;

b. Creation of Derivative Databases;

c. Creation of Collective Databases;

d. Creation of temporary or permanent reproductions by any means and in any form, in whole or in part, including of any Derivative Databases or as a part of Collective Databases; and

e. Distribution, communication, display, lending, making available, or performance to the public by any means and in any form, in whole or in part, including of any Derivative Database or as a part of Collective Databases.

3.2 Compulsory license schemes. For the avoidance of doubt:

a. Non-waivable compulsory license schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;

b. Waivable compulsory license schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and,

c. Voluntary license schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License.

3.3 The right to release the Database under different terms, or to stop distributing or making available the Database, is reserved. Note that this Database may be multiple-licensed, and so You may have the choice of using alternative licenses for this Database. Subject to Section 10.4, all other rights not expressly granted by Licensor are reserved.

## 4.0 Conditions of Use

4.1 The rights granted in Section 3 above are expressly made subject to Your complying with the following conditions of use. These are important conditions of this License, and if You fail to follow them, You will be in material breach of its terms.

4.2 Notices. If You Publicly Convey this Database, any Derivative Database, or the Database as part of a Collective Database, then You must:

a. Do so only under the terms of this License;

b. Include a copy of this License or its Uniform Resource Identifier (URI) with the Database or Derivative Database, including both in the Database or Derivative Database and in any relevant documentation;

c. Keep intact any copyright or Database Right notices and notices that refer to this License; and

d. If it is not possible to put the required notices in a particular file due to its structure, then You must include the notices in a location (such as a relevant directory) where users would be likely to look for it.

4.3 Notice for using output (Contents). Creating and Using a Produced Work does not require the notice in Section 4.2. However, if you Publicly Use a Produced Work, You must include a notice associated with the Produced Work reasonably calculated to make any Person that uses, views, accesses, interacts with, or is otherwise exposed to the Produced Work aware that Content was obtained from the Database, Derivative Database, or the Database as part of a Collective Database, and that it is available under this License.

a. Example notice. The following text will satisfy notice under Section 4.3:

Contains information from DATABASE NAME which is made available under the ODC Attribution License.

DATABASE NAME should be replaced with the name of the Database and a hyperlink to the location of the Database. "ODC Attribution License" should contain a hyperlink to the URI of the text of this License. If hyperlinks are not possible, You should include the plain text of the required URI's with the above notice.

4.4 Licensing of others. You may not sublicense the Database. Each time You communicate the Database, the whole or Substantial part of the Contents, or any Derivative Database to anyone else in any way, the Licensor offers to the recipient a license to the Database on the same terms and conditions as this License. You are not responsible for enforcing compliance by third parties with this License, but You may enforce any rights that You have over a Derivative Database. You are solely responsible for any modifications of a Derivative Database made by You or another Person at Your direction. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License.

## 5.0 Moral rights

5.1 Moral rights. This section covers moral rights, including any rights to be identified as the author of the Database or to object to treatment that would otherwise prejudice the author's honour and reputation, or any other derogatory treatment:

a. For jurisdictions allowing waiver of moral rights, Licensor waives all moral rights that Licensor may have in the Database to the fullest extent possible by the law of the relevant jurisdiction under Section 10.4;

b. If waiver of moral rights under Section 5.1 a in the relevant jurisdiction is not possible, Licensor agrees not to assert any moral rights over the Database and waives all claims in moral rights to the fullest extent possible by the law of the relevant jurisdiction under Section 10.4; and

c. For jurisdictions not allowing waiver or an agreement not to assert moral rights under Section 5.1 a and b, the author may retain their moral rights over certain aspects of the Database.

Please note that some jurisdictions do not allow for the waiver of moral rights, and so moral rights may still subsist over the Database in some jurisdictions.

## 6.0 Fair dealing, Database exceptions, and other rights not affected

6.1 This License does not affect any rights that You or anyone else may independently have under any applicable law to make any use of this Database, including without limitation:

a. Exceptions to the Database Right including: Extraction of Contents from non-electronic Databases for private purposes, Extraction for purposes of illustration for teaching or scientific research, and Extraction or Re-utilisation for public security or an administrative or judicial procedure.

b. Fair dealing, fair use, or any other legally recognised limitation or exception to infringement of copyright or other applicable laws.

6.2 This License does not affect any rights of lawful users to Extract and Re-utilise insubstantial parts of the Contents, evaluated quantitatively or qualitatively, for any purposes whatsoever, including creating a Derivative Database (subject to other rights over the Contents, see Section 2.4). The repeated and systematic Extraction or Re-utilisation of insubstantial parts of the Contents may however amount to the Extraction or Re-utilisation of a Substantial part of the Contents.

## 7.0 Warranties and Disclaimer

7.1 The Database is licensed by the Licensor "as is" and without any warranty of any kind, either express, implied, or arising by statute, custom, course of dealing, or trade usage. Licensor specifically disclaims any and all implied warranties or conditions of title, non-infringement, accuracy or completeness, the presence or absence of errors, fitness for a particular purpose, merchantability, or otherwise. Some jurisdictions do not allow the exclusion of implied warranties, so this exclusion may not apply to You.

## 8.0 Limitation of liability

8.1 Subject to any liability that may not be excluded or limited by law, the Licensor is not liable for, and expressly excludes, all liability for loss or damage however and whenever caused to anyone by any use under this License, whether by You or by anyone else, and whether caused by any fault on the part of the Licensor or not. This exclusion of liability includes, but is not limited to, any special, incidental, consequential, punitive, or exemplary damages such as loss of revenue, data, anticipated profits, and lost business. This exclusion applies even if the Licensor has been advised of the possibility of such damages.

8.2 If liability may not be excluded by law, it is limited to actual and direct financial loss to the extent it is caused by proved negligence on the part of the Licensor.

## 9.0 Termination of Your rights under this License

9.1 Any breach by You of the terms and conditions of this License automatically terminates this License with immediate effect and without notice to You. For the avoidance of doubt, Persons who have received the Database, the whole or a Substantial part of the Contents, Derivative Databases, or the Database as part of a Collective Database from You under this License will not have their licenses terminated provided their use is in full compliance with this License or a license granted under Section 4.8 of this License. Sections 1, 2, 7, 8, 9 and 10 will survive any termination of this License.

9.2 If You are not in breach of the terms of this License, the Licensor will not terminate Your rights under it.

9.3 Unless terminated under Section 9.1, this License is granted to You for the duration of applicable rights in the Database.

9.4 Reinstatement of rights. If you cease any breach of the terms and conditions of this License, then your full rights under this License will be reinstated:

a. Provisionally and subject to permanent termination until the 60th day after cessation of breach;

b. Permanently on the 60th day after cessation of breach unless otherwise reasonably notified by the Licensor; or

c. Permanently if reasonably notified by the Licensor of the violation, this is the first time You have received notice of violation of this License from the Licensor, and You cure the violation prior to 30 days after your receipt of the notice.

9.5 Notwithstanding the above, Licensor reserves the right to release the Database under different license terms or to stop distributing or making available the Database. Releasing the Database under different license terms or stopping the distribution of the Database will not withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.

## 10.0 General

10.1 If any provision of this License is held to be invalid or unenforceable, that must not affect the validity or enforceability of the remainder of the terms and conditions of this License and each remaining provision of this License shall be valid and enforced to the fullest extent permitted by law.

10.2 This License is the entire agreement between the parties with respect to the rights granted here over the Database. It replaces any earlier understandings, agreements or representations with respect to the Database.

10.3 If You are in breach of the terms of this License, You will not be entitled to rely on the terms of this License or to complain of any breach by the Licensor.

10.4 Choice of law. This License takes effect in and will be governed by the laws of the relevant jurisdiction in which the License terms are sought to be enforced. If the standard suite of rights granted under applicable copyright law and Database Rights in the relevant jurisdiction includes additional rights not granted under this License, these additional rights are granted in this License in order to meet the terms of this License.

# Unlicense

This is free and unencumbered software released into the public domain. Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.

In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

For more information, please refer to <http://unlicense.org/>

# zlib License

Copyright (c) <year> <copyright holders>

This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.

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

3. This notice may not be removed or altered from any source distribution.