# Smart Assembly Management System (1.8)

## Software

# Introduction

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

# 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.
2.1 | 11th October 2021 | Dmitry Philippov | Intended for use with Smart AMS version 1.6.
2.2 | 31st January 2022 | Dmitry Philippov | Intended for use with Smart AMS version 1.7.
2.3 | 5th December 2022 | Dmitry Philippov | Intended for use with Smart AMS version 1.8.

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 from a previous version of Smart AMS.

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, 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. A socket selector can be used. Tightening order can be configured as predetermined or arbitrary.

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 the operator presses the "skip bolt" button on the Operator Panel or Stack Light connected to the controller, the current bolt will be skipped.

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.

You can specify scan rules to extract the product ID and PR Codes from multiple scans.

Stationary controllers like PF6000 and PF4000 can be equipped with Stack Lights and 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 or a similar peripheral device connected to the corresponding controller.

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

# 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 logging on 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 transferring 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 interfaces, based on WebSocket connections, to sign in products, to retrieve product data (build data) from MES, and to send result data to MES. The interfaces are 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, Power Focus 8, MicroTorque MTF6000, PowerMACS 4000, STwrench, ICB, ITB, and PF6 Flex System.

## 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 R2 (64-bit).

Supported browsers: Microsoft Edge version 79.0.309 or later, Google Chrome as of the year 2020 or later, recent versions of Firefox and 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.

# 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

To keep Smart AMS running smoothly, virus scanners (like Windows Defender) on the Smart AMS Server computer 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:

   %ProgramData%\AMP Example: C:\ProgramData\AMP
   %AppData%\RabbitMQ Example: C:\Users\John Doe\AppData\Roaming\RabbitMQ
   %SystemDrive%\SAMS Example:C:\SAMS
   The actual path may be different. It is specified during the installation of Smart AMS.

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

   erl.exe
   AMPServiceProcess.exe

## Installation process

1. Launch Setup-SAMS-1.8.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, 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 Smart AMS, 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 credentials to log on to Smart AMS Manager.
   Select the Enable Instance Discovery check box to enable detection of concurrent Smart AMS Server instances running on the network. You will be able to check it in Smart AMS Manager, in the Dashboard section > Detected instances subsection. To avoid conflicts, only one Smart AMS Server should be running on the network.

   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. The plugin consumes system resources. It is only necessary if you plan to use it. Otherwise, do not select this check box.

   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 Smart AMS 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.

# Upgrading Smart AMS

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

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 configuration file of a previous Smart AMS version into Smart AMS Config v. 1.8. The configuration parameters introduced in Smart AMS v. 1.8, which were not available in the old version, will be set to their default values.

When upgrading from Smart AMS v. 1.5, 1.6, or 1.7, the following customizations in Smart AMS Config will be retained: user account settings (only when upgrading from Smart AMS v. 1.6 or 1.7) and configuration snapshots.

# 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.

# 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
- Changing locale
- 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. 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: SAMS controllers, Line PLC, MES connections, ToolsNet 8, Service Manager, App context, Licensing, Detected instances.

The SAMS controllers, Line PLC, MES connections and ToolsNet 8 subsections are called commissioning indicators. To display them, turn on the Use Monitoring API function in the App settings for Smart AMS Config.

In a subsection, a green dot indicates that the item is available or running. Otherwise, a red dot is shown. Inactive items will not be shown.

The Dashboard can contain the following subsections.

SAMS controllers: Shows the controllers that are used with Smart AMS. To view details for controllers, click the chart. For each controller, the following information will be shown: controller type, connection status (connected or disconnected ), line name, station name, IP address, and port.
Line PLC: Shows the PLC connections that are used with Smart AMS. To view details for connections, click the chart. For each connection, the following information will be shown: line name, line number, IP address, and connection status (connected or disconnected ).
MES connections: Shows the MES connections that are used with Smart AMS. To view details for connections, click the chart. For each connection, the following information will be shown: adapter name, adapter type, and connection status (connected or disconnected ).
ToolsNet 8: Shows the ToolsNet 8 connection status.
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.
Detected instances: Shows if there are any other Smart AMS Server instances running on the network. For each instance, the following information will be shown: host name, application name, application version, IP address and port. Clicking on the address link will allow you to view Smart AMS Manager for the corresponding instance.

To avoid conflicts, only one Smart AMS Server should be running on the network.

# 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.

# Changing locale

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 Administration 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 Administration.

- Click Profile.

- In the Locale list, select English, German, or Chinese.

For values shown in the Dashboard section, different locales use a decimal point or a comma, as appropriate.

# 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 change the number of entries that are displayed on each page, click the drop-down list under the results table, and then select 5 rows, 10 rows, 20 rows, 25 rows, 50 rows, 100 rows, 200 rows, or 500 rows.

- To navigate between pages, use the page navigation buttons (Previous, Next) available on pages. The total number of pages is shown on each page.

- To jump quickly to a page, enter a page number in the Page box.

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. Example: a service is successfully started or stopped.

# 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.

In order to use all of the features available in Smart AMS v. 1.8, use Smart AMS Config. If you have used a version of Smart AMS older than 1.8, 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
- Working with configurations
- Adding and managing lines
- Adding and managing stations
- Adding and managing scan rules
- Managing user roles
- Managing user accounts in Smart AMS Config
- Specifying user preferences in Smart AMS Config
- Searching for items
- Viewing notifications for errors and warnings

# 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 a username and password. You will then need to enter these credentials to log on to Smart AMS Config as a superuser.

- Enter your credentials to log on. You can get this information from the person responsible for Smart AMS configuration.

The data you enter in the Username and Password fields must match those of an existing user account.

# Logging out from Smart AMS Config

You can log out anytime.

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

You can specify the amount of user inactivity time on Smart AMS Config before the user is logged out.

- 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.

- Click in the upper-right corner of the page, select the Account management section, and then select Settings.

Logout interval field: Specify the maximum time in minutes that the user can remain idle before logging out automatically.

# 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.

- Click , and then click App settings .

- To switch to a different section in settings, click the corresponding button: Basic, Advanced, MES, ILT, or Modbus.

## Basic

Customer name field: Delete the default value and type the name of the customer. It will not be included in result data.

Plant name field: Delete the default value and type 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. If scan rules are used at the station, the barcode scanner will not be considered for emergency mode sign-in in this 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. When in emergency mode, no scan rules will be applied to the scanned content.
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. When in emergency mode, no scan rules will be applied to the scanned content.

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. A value of 0 indicates no limit. Default value: 10000.

ILT Server port field: Specify the TCP port for connection.

Use Monitoring API toggle switch: It is required for using the SAMS controllers, Line PLC, MES connections and ToolsNet 8 commissioning indicators in Smart AMS Manager. 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.

Product idle timeout field: Specifies the time period, in seconds, to wait until the product is signed out due to inactivity. After the idle timeout is reached, the product will be signed out in the NOK state. To deactivate this function, leave the field blank. The setting is applied to all stations for which the Override global setting feature is turned off in the station's settings.

Sequence number semantics toggle switch: Turn it on to consider the Sequence start and Sequence end values while checking the sequence numbers.

Sequence start field: Enter a number to specify the beginning of sequence.

Sequence end fields: Enter a number to specify the end of sequence.

## 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.

ToolsNet 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

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.

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.

- To set distances, click the Set distances button.

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

IP field: Specify the device's IP address.

Port field: Specify the TCP port for connection.

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

Modbus

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 a Modbus Device, click Add Modbus Device.

# 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 Workplaces section, click in the Navigation Panel on the left of the page.

- Use to show the section names: Workplaces and Scan rules.

- Use to hide the section names. The section icons will remain displayed.

## Creating a new configuration

A snapshot of the current configuration is created each time you create a blank configuration.

- Click .

- Enter a description for the snapshot of the current configuration, and then click New.

## Undoing or redoing an action

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.

A snapshot of the current configuration is created each time you push it to the server.

- Click .

- Enter a description for the snapshot of the current configuration, and then click Push.

## Importing a configuration

A snapshot of the current configuration is created each time you import a configuration.

- In the Workplaces section, click .

- Click Choose file, and then select the .dat file with configuration.

- Enter a description for the snapshot of the current configuration, and then click Import.

## Importing an 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 , and then click Import Excel configuration.

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

- Click Import.

## Saving a snapshot of the current configuration

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

- 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 upper-right corner of the page, and then select History .

  The columns in the view are: Time stamp, Description, Username, Applied, Recover, and Export.

- In the Recover column, click .

Time stamp: Time when the snapshot was created.

Description: Descriptive text that was entered when creating the snapshot.

Username: Shows who created the snapshot.

Applied: Shows whether a snapshot was applied or not. The snapshot that is currently applied will be highlighted.

Recover: Click to roll back the configuration.

Export: Click or to export the selected configuration snapshot to a .dat or .pdf file, respectively.

## Exporting a configuration

In the History section, you can export a configuration snapshot to a .dat or .pdf file. DAT files can be used for backup purposes, you can import them later on. PDF files are useful for reporting. They contain all information found in the configuration. You can view PDF files, but you cannot import them back into Smart AMS Config.

- To switch to the History section, click in the upper-right corner of the page, and then select History .

- In the Export column, click or .

# 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 Workplaces section, click in the Navigation Panel on the left of the page.

- 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

Active toggle switch: If this toggle switch is turned off, the line is inactive. Inactive lines appear hatched in the graphical user interface. They are unavailable for execution of work; Smart AMS ignores them. If turned on, the line is activated.

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

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

Scan rule list: Select a scan rule for the assembly line. The scan rule will be applied to all Smart AMS stations in the line.
Example usage: When a product sign-in attempt is ongoing, the conventional blue lamp on the Stack Light is blinking. It stops blinking when the attempt has been completed either OK or NOK. If the sign-in attempt has failed, the conventional red lamp on the Stack Light will indicate an error state. The error status is reset as soon as a new sign-in attempt is made or the station is switched to emergency mode.
If no scan rule is selected, all scans at the stations in the assembly line will be treated as product ID. If no input source is specified, the product ID will be empty.

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.

Sequence Check toggle switch: If you want to enable the Sequence Check feature, turn it on. Otherwise, turn it off. Use it to control that sequence numbers go in series with increment of 1. A sequence break alarm will cease when the sequence has been corrected to match the expected sequence number or the product has been signed out. The sequence break alarm in the event log contains the following details: the ID of the station where the sequence break was detected, expected sequence number (with product ID), actual sequence number (with product ID), and last unbroken sequence number (with product ID). A new notification is sent out each time a new sequence break is detected.

Strategy list: If you do not want to stop the assembly line when a sequence break in detected, select Only notification. Otherwise, select Stop production. Sequence break will be logged to the event log anyway. The Stop production option can only be used when products are signed in by PLC.

Emit always toggle switch: If turned on, the scope of the Strategy setting will include the affected station and subsequent stations in the assembly line. If turned off, it will only include the affected station. The sequence break will be logged to the event log for the affected station and, if the break is not corrected, for subsequent stations in the assembly line.

## 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 Workplaces section, click in the Navigation Panel on the left of the page.

The number of bolts and the number of tightening equipment items assigned to a station will appear on the station icon in the Workplaces section.

- To add a station, click 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 Workplaces section, click in the Navigation Panel on the left of the page.

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

Active toggle switch: If this toggle switch is turned off, the station is inactive. The icons of inactive stations appear hatched. Inactive stations are unavailable for execution of work; Smart AMS ignores them. If turned on, 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.

Product idle timeout

Override global setting toggle switch: If you want to override the global setting for product idle timeout at the station, turn it on. Otherwise, turn it off.

Product idle timeout field: Specifies the time period, in seconds, to wait until the product is signed out due to inactivity. After the idle timeout is reached, the product will be signed out in the NOK state. To deactivate this function, leave the 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 Workplaces section, click in the Navigation Panel on the left of the page.

- 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.

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

Type list: Specify the type of controller: PF4000, PM4000, PF6000, STwrench, IXB, Flex (for PF6 Flex System), MTF6000, or PF8.

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 will work 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.

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.

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

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

Smart AMS is capable of indicating configuration problems in the Controllers subsection. In that case, the subsection's name will be marked with a circled exclamation mark .

# 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 Workplaces section, click in the Navigation Panel on the left of the page.

- 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.
Note that there can be a similar setting in some controllers, such as PF6000. The setting in the controller can have the following name: Max consecutive NOK per program. If you are using both settings—in Smart AMS and in the controller—then make sure they are consistent and test the configuration in practical use.

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.

Smart AMS is capable of indicating configuration problems in the Recipes subsection. In that case, the subsection's name will be marked with a circled exclamation mark .

# 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 Workplaces section, click in the Navigation Panel on the left of the page.

- Click the icon of the SQS3 station.

Active toggle switch: If this toggle switch is turned off, the station is inactive. The icons of inactive stations appear hatched. Inactive stations are ignored. If turned on, 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.

# 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 Workplaces section, click in the Navigation Panel on the left of the page.

- Click the icon of the manual station.

Active toggle switch: If this toggle switch is turned off, the station is inactive. The icons of inactive stations appear hatched. Inactive stations are ignored. If turned on, 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.

# Adding and managing scan rules

Barcode scanning rules define the quantity and sequence of barcodes that the operator will need to scan when the station is in automatic mode. They also define how the data, such as product ID and PR Codes, are extracted from the scanned content.

Each scan rule must contain a barcode for the extraction of product ID.

Product sign-in at the stations in an assembly line with a scan rule assigned will be successful if the expected barcodes are scanned in the specified sequence and the input strings are compliant with the constraints specified for the barcodes in the scan rule.

To add and manage scan rules, 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 Scan rules section, click in the Navigation Panel on the left of the page.

- Click Add scan rule, and then specify the name for the rule.

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

Each scan rule can include multiple barcodes customized the way you want them.

- To add a barcode, click .

- To rearrange scan rules and barcodes, use a drag-and-drop operation. The order of scan rules in the Scan rules section does not affect the workflow. The order of barcodes in a scan rule determines the expected sequence of barcodes.

- To copy a scan rule or a barcode, to paste it, or delete it, use the right-click context menu.

- Use and to expand or collapse items within the section.

## General

Name field: Specify the name for the barcode.

Length field: Specify the length for the barcode (in characters).

Accept larger barcode toggle switch: If turned on, Smart AMS will accept barcodes whose length is greater than the specified value. Turn it off to discard oversized barcodes.

Legal characters list: Select Everything, Numbers and letters, Only numbers, Only letters, Only uppercase letters, or Only lowercase letters.

Extract toggle switch: If turned on, Smart AMS will extract the product ID from the barcode. If you do not need product ID, turn it off.

Start position field: Enter a number to specify the beginning of product ID in the barcode.

End position field: Enter a number to specify the end of product ID in the barcode. To read to the end of barcode, leave the field blank.

## PR Codes

Each barcode can include multiple PR Codes.

- To make a PR Code available for extraction, click Add PR Code and specify its settings.

Prefix field: Specify a prefix that will be automatically prepended to the extracted value.

Start position field: Enter a number to specify the beginning of PR Code in the barcode.

End position field: Enter a number to specify the end of PR Code in the barcode. To read to the end of barcode, leave the field blank.

## PR Code Sequence

Extract toggle switch: If turned on, Smart AMS will extract multiple PR Codes from the barcode. To disable this feature, turn it off.

PR Code length field: Enter the length of a single PR Code (in characters).

Prefix for each PR Code field: Specify a prefix that will be automatically prepended to each of the extracted PR Codes.

The list of extracted PR Codes is merged with PR Codes received from other sources—for example, MES, if configured in that way. In this case, the combined list of PR Codes will be used to determine the product's workflow.

# Managing user roles

In the Role management subsection you can add, edit, or remove user roles. If multiple roles are assigned to a user, these roles collectively specify the rights for the user.

To manage users and roles, you must be logged-on as a superuser. You can use the username and password that you specified when logging on to Smart AMS Config for the first time, because the first user created in Smart AMS Config is automatically assigned the Superuser role.

- 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.

- Click in the upper-right corner of the page, select the Account management section, and then select Roles.

## Adding a role

- Click .

- Specify a name for the role.

- Click the Permissions field, and then click a permission to associate with the role: Editing of configuration, Pushing of configuration, Reset of configuration, Importing of Excel configuration, Importing/exporting of snapshot, Recovering of snapshot, or Saving of snapshot. To assign multiple permissions, repeat the selection step.

## Editing a role

- In the Edit role column, click .

- Add the permissions you want.

- To remove unneeded permissions, click .

## Removing a role

- In the Remove role column, click .

# Managing user accounts in Smart AMS Config

In the User management subsection, you can add user accounts and specify credentials for them.

To manage users and roles, you must be logged-on as a superuser. You can use the username and password that you specified when logging on to Smart AMS Config for the first time, because the first user created in Smart AMS Config is automatically assigned the Superuser role.

- 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.

- Click in the upper-right corner of the page, select the Account management section, and then select Users.

## 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.

## Assigning roles to a user

- In the Roles column, click .

- Click the User roles field, and then click a role to assign it to the user. To assign multiple roles, repeat the selection step.

The Superuser role includes all the user rights that you can assign to a user, as well as the ability to manage users and roles. This role is always available and cannot be edited or deleted.

A green dot in the Is admin column indicates a superuser. Otherwise, a red dot is shown.

## Deleting a user account

- In the Remove user column, click .

  Superusers cannot be removed directly. To remove a superuser, first unassign the Superuser role.

# Specifying user preferences in Smart AMS Config

In the User preferences section you can specify preferences for the user who is currently logged on. The preferences are persisted on a per user basis.

- 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.

- Select in the upper-right corner of the page, and then select User preferences .

Display language list: Select the interface language. You can choose one of the following languages: English, German, or Chinese.

Theme list: By default, the theme for Smart AMS Config is set to Bright. You can change it to Dark.

Time stamp format list: The following options are available: MM/DD/YYYY hh:mm:ss AM/PM (12H), YYYY-MM-DD hh:mm:ss (24H), DD.MM.YYVY hh:mm:ss (24H), DD/MM/YYYY hh:mm:ss (24H), YYYY/MM/DD hh:mm:ss (24H)

Time zone list: Select your time zone.

Password: To change password of the currently logged on user, click Change.

# Searching for items

You can quickly search through the configuration to find the desired item by its name or by a value in the item's settings. The search is case-insensitive.

- 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.

- Click in the upper-right corner of the page, and then enter the text to search for in the object names or descriptions.

- To toggle whole word searching on ("W" shown in bold) and off ("W" shown in non-bold), click the letter "W" next to the search box.

Group by list: You can group search results by Type or by Property. To remove grouping, click .

- To go to the relevant part of the configuration, click the corresponding link in the search results.

To pin or unpin the Search results section, use and .

# Viewing notifications for errors and warnings

The system is capable of detecting misconfigurations in it.

Deactivated objects are not checked during the validation process.

- 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.

- You can point to the bell icon in the upper-right corner of the page to get a tooltip with statistics for New, Error, Information, Success, and Warning notifications.

- Click the bell icon to see the list of notifications.

Colors have the following meanings.

: There are no errors or warnings about the current configuration.

: There is at least one warning, but no errors. The counter in the icon will display the number of new notifications.

: There is at least one error. The counter in the icon will display the number of new notifications.

Group by list: You can group notifications by New (that is, those that have not been marked as read), Error, Information, Success, Warning. To remove grouping, click .

- To go to the relevant part of the configuration, click the corresponding link in the notification text.

- After you have reviewed the notifications, you can click , and then select Mark all notifications as read or Close all notifications.

To pin or unpin the Notifications section, use and .

# 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.8, 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 the same format. Configurations can only be exported to .dat or .pdf files.

In this Section

- Obtaining the configuration template in Microsoft Excel format
- Global configurations in the .xlsx configuration file
- Settings for stations in the .xlsx configuration file
- Recipe list in the .xlsx configuration file

# Obtaining the configuration template in Microsoft Excel format

In order to use all of the features available in Smart AMS v. 1.8, it is recommended that you use Smart AMS Config to create configurations. However, you can always get the configuration template in Microsoft Excel format.

- 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 Workplaces section, click in the Navigation Panel on the left of the page.

- Click , and then click Download configuration template.

# 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. If scan rules are used at the station, the barcode scanner will not be considered for emergency mode sign-in in this 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. When in emergency mode, no scan rules will be applied to the scanned content.
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. When in emergency mode, no scan rules will be applied to the scanned content.

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 will work 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.

# 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.

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.

# 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 %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
Keycloak Application Server | Internal configuration | 8306
Keycloak Manager | Internal configuration | 6396
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 Config | Hardcoded | 6395
Smart AMS Manager | Specified during the installation of Smart AMS | 6394
Smart AMS Server multiple instance discovery | Hardcoded | 5353

# IO settings

## Input signals

Signal number | Description | Intended mapping
--- | --- | ---
1 | Emergency mode activation switch | Keyswitch
2 | Skip product (bypass product) trigger | Keyswitch
3 | Skip workstep (bypass bolt) trigger | Button
4 | Overwrite OK status | Depends on operator panel
5 | Acknowledge sequence break | Keyswitch

## Output signals

Signal number | Description | Intended mapping
--- | --- | ---
1 | Emergency mode active signal | Orange lamp
2 | Product overall OK signal | Green lamp
3 | Product overall NOK signal | Red lamp
4 | Product running signal | Blue lamp; with relay-based controllers it will be blinking while product identification is ongoing
5 | Station error (sign-in refusal and so on) | Red lamp
6 | Product identification ongoing | Blue lamp blinking; not used by relay-based controllers
7 | Global error (not related to station), such as MES or PLC disconnection | Red lamp
8 | Sequence break signal | Red lamp

## 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 workstep | External monitored 3 | %QX 13000.2 | External monitored 3 | Third output bit
Overwrite OK status | External monitored 4 | %QX 13000.3 | External monitored 4 | Fourth output bit
Acknowledge sequence break | External monitored 5 | %QX 13000.4 | External monitored 5 | Fifth output bit

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

Note that the sixth input bit is not used by the specified controllers. Instead, the fourth input bit is used as follows. If a blue lamp is connected, it will be blinking while product identification is ongoing; it will glow steadily while the product is running.

In Modbus Device, the fourth input bit is used for the signal indicating that the product is running, the sixth input bit is used for the product identification signal.

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
Station error | External controlled 5 | %IX 13000.4 | Generic IO 5 | Fifth input bit
Product identification ongoing | N/A | N/A | N/A | Sixth input bit
Global error, not related to station | External controlled 7 | %IX 13000.6 | Generic IO 7 | Seventh input bit
Sequence break signal | External controlled 8 | %IX 13000.7 | Generic IO 8 | Eighth input 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" retries
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 License, Version 2.0
- Zero-Clause BSD (0BSD) license
- 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
- GNU General Public License, v.2, with Classpath Exception
- ISC License
- Inno Setup License
- MIT Software License
- Mozilla Public License, v.2.0 (MPL-2.0)
- PostgreSQL License
- Unlicense

# List of third-party software

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

Third-party software
Software | Version | License
--- | --- | ---
.NET | 6.0 | MIT
.NET Core | 2.0 | MIT
@babel/code-frame | 7.15.8 | MIT
@babel/code-frame | 7.16.7 | MIT
@babel/compat-data | 7.15.0 | MIT
@babel/compat-data | 7.16.8 | MIT
@babel/core | 7.15.8 | MIT
@babel/generator | 7.15.8 | MIT
@babel/generator | 7.16.8 | MIT
@babel/helper-compilation-targets | 7.15.4 | MIT
@babel/helper-compilation-targets | 7.16.7 | MIT
@babel/helper-environment-visitor | 7.16.7 | MIT
@babel/helper-function-name | 7.15.4 | MIT
@babel/helper-function-name | 7.16.7 | MIT
@babel/helper-get-function-arity | 7.15.4 | MIT
@babel/helper-get-function-arity | 7.16.7 | MIT
@babel/helper-hoist-variables | 7.15.4 | MIT
@babel/helper-hoist-variables | 7.16.7 | MIT
@babel/helper-member-expression-to-functions | 7.15.4 | MIT
@babel/helper-module-imports | 7.15.4 | MIT
@babel/helper-module-imports | 7.16.7 | MIT
@babel/helper-module-imports | 7.18.6 | MIT
@babel/helper-module-transforms | 7.15.8 | MIT
@babel/helper-module-transforms | 7.16.7 | MIT
@babel/helper-optimise-call-expression | 7.15.4 | MIT
@babel/helper-plugin-utils | 7.14.5 | MIT
@babel/helper-plugin-utils | 7.16.7 | MIT
@babel/helper-plugin-utils | 7.19.0 | MIT
@babel/helper-replace-supers | 7.15.4 | MIT
@babel/helpers | 7.15.4 | MIT
@babel/helpers | 7.16.7 | MIT
@babel/helper-simple-access | 7.15.4 | MIT
@babel/helper-simple-access | 7.16.7 | MIT
@babel/helper-split-export-declaration | 7.15.4 | MIT
@babel/helper-split-export-declaration | 7.16.7 | MIT
@babel/helper-string-parser | 7.18.10 | MIT
@babel/helper-validator-identifier | 7.15.7 | MIT
@babel/helper-validator-identifier | 7.16.7 | MIT
@babel/helper-validator-identifier | 7.18.6 | MIT
@babel/helper-validator-option | 7.14.5 | MIT
@babel/helper-validator-option | 7.16.7 | MIT
@babel/highlight | 7.14.5 | MIT
@babel/highlight | 7.16.7 | MIT
@babel/parser | 7.15.8 | MIT
@babel/parser | 7.16.8 | MIT
@babel/plugin-syntax-jsx | 7.14.5 | MIT
@babel/plugin-syntax-jsx | 7.16.7 | MIT
@babel/plugin-syntax-jsx | 7.18.6 | MIT
@babel/runtime | 7.15.3 | MIT
@babel/runtime | 7.15.4 | MIT
@babel/runtime | 7.16.7 | MIT
@babel/runtime | 7.19.0 | MIT
@babel/template | 7.15.4 | MIT
@babel/template | 7.16.7 | MIT
@babel/traverse | 7.15.4 | MIT
@babel/traverse | 7.16.8 | MIT
@babel/types | 7.15.6 | MIT
@babel/types | 7.16.8 | MIT
@babel/types | 7.19.0 | MIT
@dnd-kit/accessibility | 2.0.0 | MIT
@dnd-kit/core | 2.1.2 | MIT
@dnd-kit/modifiers | 1.0.5 | MIT
@dnd-kit/sortable | 2.0.1 | MIT
@dnd-kit/utilities | 1.0.3 | MIT
@emotion/babel-plugin | 11.10.2 | MIT
@emotion/babel-plugin | 11.9.2 | MIT
@emotion/cache | 11.10.3 | MIT
@emotion/cache | 11.4.0 | MIT
@emotion/cache | 11.7.1 | MIT
@emotion/hash | 0.8.0 | MIT
@emotion/hash | 0.9.0 | MIT
@emotion/memoize | 0.7.5 | MIT
@emotion/memoize | 0.8.0 | MIT
@emotion/react | 11.10.4 | MIT
@emotion/react | 11.4.1 | MIT
@emotion/react | 11.9.0 | MIT
@emotion/serialize | 1.0.2 | MIT
@emotion/serialize | 1.0.3 | MIT
@emotion/serialize | 1.1.0 | MIT
@emotion/sheet | 1.0.2 | MIT
@emotion/sheet | 1.1.0 | MIT
@emotion/sheet | 1.2.0 | MIT
@emotion/unitless | 0.7.5 | MIT
@emotion/unitless | 0.8.0 | MIT
@emotion/use-insertion-effect-with-fallbacks | 1.0.0 | MIT
@emotion/utils | 1.0.0 | MIT
@emotion/utils | 1.1.0 | MIT
@emotion/utils | 1.2.0 | MIT
@emotion/weak-memoize | 0.2.5 | MIT
@emotion/weak-memoize | 0.3.0 | MIT
@foliojs-fork/fontkit | 1.9.1 | MIT
@foliojs-fork/linebreak | 1.1.1 | MIT
@foliojs-fork/pdfkit | 0.13.0 | MIT
@foliojs-fork/restructure | 2.0.2 | MIT
@hypnosphi/create-react-context | 0.3.1 | MIT
@types/node | 13.7.7 | MIT
@types/parse-json | 4.0.0 | MIT
@types/prop-types | 15.7.3 | MIT
@types/prop-types | 15.7.4 | MIT
@types/prop-types | 15.7.5 | MIT
@types/react | 16.9.55 | MIT
@types/react | 17.0.24 | MIT
@types/react | 17.0.29 | MIT
@types/react | 18.0.10 | MIT
@types/react-transition-group | 4.4.2 | MIT
@types/react-transition-group | 4.4.3 | MIT
@types/react-transition-group | 4.4.4 | MIT
@types/resize-observer-browser | 0.1.7 | MIT
@types/scheduler | 0.16.2 | MIT
abbrev | 1.1.1 | ISC
accepts | 1.3.7 | MIT
acorn | 7.4.1 | MIT
acorn-node | 1.8.2 | Apache-2.0
acorn-walk | 7.2.0 | MIT
after | 0.8.2 | MIT
ajv | 6.12.6 | MIT
amdefine | 1.0.1 | BSD-3-Clause or MIT
amqplib | 0.8.0 | MIT
ansi-regex | 2.1.1 | MIT
ansi-regex | 3.0.1 | MIT
ansi-regex | 4.1.1 | MIT
ansi-styles | 2.2.1 | MIT
ansi-styles | 3.2.1 | MIT
any-promise | 1.3.0 | MIT
aproba | 1.2.0 | ISC
are-we-there-yet | 1.1.5 | ISC
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-from | 2.1.1 | MIT
asn1 | 0.2.4 | MIT
ASP.NET Core | 6.0 | MIT
assert-plus | 1.0.0 | MIT
ast-transform | 0.0.0 | MIT
ast-types | 0.7.8 | MIT
async-foreach | 0.1.3 | MIT
asynckit | 0.4.0 | MIT
aws4 | 1.9.1 | MIT
aws-sign2 | 0.7.0 | Apache-2.0
axios | 0.19.2 | MIT
axios | 0.21.4 | MIT
axios | 0.22.0 | MIT
axios-observable | 1.3.0 | MIT
axios-observable | 1.5.0 | MIT
babel-plugin-macros | 2.8.0 | MIT
babel-plugin-macros | 3.1.0 | MIT
backo2 | 1.0.2 | MIT
balanced-match | 1.0.0 | MIT
base64-arraybuffer | 0.1.4 | MIT
base64id | 2.0.0 | MIT
base64-js | 1.3.1 | MIT
bcrypt-pbkdf | 1.0.2 | BSD-3-Clause
bitsyntax | 0.1.0 | MIT
blob | 0.0.5 | MIT
block-stream | 0.0.9 | ISC
bluebird | 3.7.2 | MIT
body-parser | 1.19.0 | MIT
bonjour | 3.5.0 | MIT
bootstrap | 4.5.3 | MIT
bootstrap | 4.6.0 | MIT
brace-expansion | 1.1.11 | MIT
brfs | 2.0.2 | MIT
brotli | 1.3.2 | MIT
browserify-optional | 1.0.1 | MIT
browser-resolve | 1.11.3 | MIT
browserslist | 4.17.3 | MIT
browserslist | 4.19.1 | MIT
buffer-equal | 0.0.1 | MIT
buffer-equal-constant-time | 1.0.1 | BSD-3-Clause
buffer-from | 1.1.1 | MIT
buffer-from | 1.1.2 | MIT
buffer-indexof | 1.1.1 | MIT
buffer-more-ints | 1.0.0 | MIT
bytes | 3.0.0 | MIT
bytes | 3.1.0 | MIT
call-bind | 1.0.2 | MIT
callsites | 3.1.0 | MIT
camelcase | 2.1.1 | MIT
camelcase | 5.3.1 | MIT
camelcase-keys | 2.1.0 | MIT
caniuse-lite | 1.0.30001265 | CC-BY-4.0
caniuse-lite | 1.0.30001300 | CC-BY-4.0
caseless | 0.12.0 | Apache-2.0
chalk | 1.1.3 | MIT
chalk | 2.4.2 | MIT
chart.js | 3.7.1 | MIT
chownr | 1.1.4 | ISC
classnames | 2.3.1 | MIT
cliui | 5.0.0 | ISC
clone | 1.0.4 | MIT
cls-bluebird | 2.1.0 | BSD-2-Clause
code-point-at | 1.1.0 | MIT
color-convert | 1.9.3 | MIT
color-name | 1.1.3 | MIT
combined-stream | 1.0.8 | 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
compressible | 2.0.18 | MIT
compression | 1.7.4 | MIT
concat-map | 0.0.1 | MIT
concat-stream | 1.6.2 | MIT
connected-react-router | 6.8.0 | MIT
console-control-strings | 1.1.0 | ISC
content-disposition | 0.5.3 | MIT
content-type | 1.0.4 | MIT
convert-source-map | 1.7.0 | MIT
convert-source-map | 1.8.0 | MIT
cookie | 0.4.0 | MIT
cookie | 0.4.2 | MIT
cookie-signature | 1.0.6 | MIT
core-util-is | 1.0.2 | MIT
core-util-is | 1.0.3 | MIT
cors | 2.8.5 | MIT
cosmiconfig | 6.0.0 | MIT
cosmiconfig | 7.0.1 | MIT
create-react-context | 0.3.0 | MIT
cross-spawn | 3.0.1 | MIT
crypto-js | 4.1.1 | MIT
csstype | 3.0.4 | MIT
csstype | 3.0.8 | MIT
csstype | 3.0.9 | MIT
csstype | 3.1.0 | MIT
currently-unhandled | 0.4.1 | MIT
d | 1.0.1 | ISC
dash-ast | 2.0.1 | Apache-2.0
dashdash | 1.14.1 | MIT
date-arithmetic | 3.1.0 | MIT
date-fns | 2.16.1 | MIT
date-format | 4.0.14 | MIT
debug | 2.6.9 | MIT
debug | 3.1.0 | MIT
debug | 3.2.6 | MIT
debug | 4.1.1 | MIT
debug | 4.3.1 | MIT
debug | 4.3.2 | MIT
debug | 4.3.4 | MIT
decamelize | 1.2.0 | MIT
deep-equal | 1.1.1 | MIT
deep-extend | 0.6.0 | MIT
deep-is | 0.1.3 | MIT
deep-is | 0.1.4 | MIT
define-properties | 1.1.3 | MIT
define-properties | 1.1.4 | MIT
delayed-stream | 1.0.0 | MIT
delegates | 1.0.0 | MIT
depd | 1.1.2 | MIT
destroy | 1.0.4 | MIT
detect-libc | 1.0.3 | Apache-2.0
dfa | 1.2.0 | MIT
direct-styled | 1.0.1 | MIT
dns-equal | 1.0.0 | MIT
dns-packet | 1.3.4 | MIT
dns-txt | 2.0.2 | MIT
dom-helpers | 3.4.0 | MIT
dom-helpers | 5.2.1 | MIT
DotNetCore.NPOI | 1.2.1 | Apache-2.0
dottie | 2.0.2 | MIT
duplexer2 | 0.1.4 | BSD-3-Clause
ecc-jsbn | 0.1.2 | MIT
ecdsa-sig-formatter | 1.0.11 | Apache-2.0
ee-first | 1.1.1 | MIT
electron-to-chromium | 1.3.861 | ISC
electron-to-chromium | 1.3.864 | ISC
electron-to-chromium | 1.3.867 | ISC
electron-to-chromium | 1.4.48 | ISC
emoji-regex | 7.0.3 | MIT
encodeurl | 1.0.2 | MIT
engine.io | 3.6.0 | MIT
engine.io-client | 3.5.3 | MIT
engine.io-parser | 2.2.1 | MIT
Erlang OTP | 25.1.2 | Apache-2.0
error-ex | 1.3.2 | MIT
es5-ext | 0.10.53 | ISC
es6-iterator | 2.0.3 | MIT
es6-map | 0.1.5 | MIT
es6-set | 0.1.5 | MIT
es6-symbol | 3.1.1 | MIT
es6-symbol | 3.1.3 | ISC
es-abstract | 1.17.4 | MIT
es-abstract | 1.18.0-next.1 | MIT
es-abstract | 1.19.1 | MIT
escalade | 3.1.1 | MIT
escape-html | 1.0.3 | MIT
escape-string-regexp | 1.0.5 | MIT
escape-string-regexp | 4.0.0 | MIT
escodegen | 1.14.1 | BSD-2-Clause
escodegen | 1.14.3 | BSD-2-Clause
escodegen | 1.2.0 | BSD-2-Clause
escodegen | 1.9.1 | BSD-2-Clause
esprima | 1.0.4 | BSD-2-Clause
esprima | 1.2.2 | BSD-2-Clause
esprima | 3.1.3 | BSD-2-Clause
esprima | 4.0.1 | BSD-2-Clause
es-to-primitive | 1.2.1 | MIT
estraverse | 1.5.1 | BSD-2-Clause
estraverse | 4.3.0 | BSD-2-Clause
estree-is-function | 1.0.0 | Apache-2.0
esutils | 1.0.0 | BSD-2-Clause
esutils | 2.0.3 | BSD-2-Clause
etag | 1.8.1 | MIT
event-emitter | 0.3.5 | MIT
eventemitter3 | 3.1.2 | MIT
express | 4.17.1 | MIT
ext | 1.6.0 | ISC
extend | 3.0.2 | MIT
extsprintf | 1.3.0 | MIT
fast-deep-equal | 3.1.1 | MIT
fast-json-stable-stringify | 2.1.0 | MIT
fast-levenshtein | 2.0.6 | MIT
filesize | 6.1.0 | BSD-3-Clause
filesize | 8.0.3 | BSD-3-Clause
finalhandler | 1.1.2 | MIT
find-root | 1.1.0 | MIT
find-up | 1.1.2 | MIT
find-up | 3.0.0 | MIT
flatted | 3.2.7 | ISC
Fleck | 1.1.0 | MIT
Flurl | 3.0.2 | MIT
Flurl.Http | 3.2.0 | MIT
Flurl.Http | 3.2.4 | MIT
follow-redirects | 1.14.9 | MIT
follow-redirects | 1.15.2 | MIT
follow-redirects | 1.5.10 | MIT
forever-agent | 0.6.1 | Apache-2.0
form-data | 2.3.3 | MIT
forwarded | 0.1.2 | MIT
fresh | 0.5.2 | MIT
fs.realpath | 1.0.0 | ISC
fs-extra | 8.1.0 | MIT
fs-minipass | 1.2.7 | ISC
fstream | 1.0.12 | ISC
function-bind | 1.1.1 | MIT
functions-have-names | 1.2.3 | MIT
gauge | 2.7.4 | ISC
gaze | 1.1.3 | MIT
gensync | 1.0.0-beta.2 | MIT
get-assigned-identifiers | 1.2.0 | Apache-2.0
get-caller-file | 2.0.5 | ISC
get-intrinsic | 1.1.1 | MIT
get-intrinsic | 1.1.3 | MIT
getpass | 0.1.7 | MIT
get-stdin | 4.0.1 | MIT
get-symbol-description | 1.0.0 | MIT
glob | 7.1.6 | ISC
globals | 11.12.0 | MIT
globule | 1.3.2 | MIT
graceful-fs | 4.2.10 | ISC
graceful-fs | 4.2.3 | ISC
gud | 1.0.0 | MIT
har-schema | 2.0.0 | ISC
har-validator | 5.1.3 | MIT
has | 1.0.3 | MIT
has-ansi | 2.0.0 | MIT
has-bigints | 1.0.1 | MIT
has-binary2 | 1.0.3 | MIT
has-cors | 1.1.0 | MIT
has-flag | 3.0.0 | MIT
has-property-descriptors | 1.0.0 | MIT
has-symbols | 1.0.1 | MIT
has-symbols | 1.0.2 | MIT
has-symbols | 1.0.3 | MIT
has-tostringtag | 1.0.0 | MIT
has-unicode | 2.0.1 | ISC
history | 4.10.1 | MIT
hoist-non-react-statics | 3.3.2 | BSD-3-Clause
hosted-git-info | 2.8.9 | ISC
html-parse-stringify | 3.0.1 | MIT
http-errors | 1.4.0 | MIT
http-errors | 1.7.2 | MIT
http-signature | 1.2.0 | MIT
i18next | 19.8.3 | MIT
i18next | 19.9.2 | MIT
i18next-browser-languagedetector | 4.3.1 | MIT
i18next-browser-languagedetector | 6.1.2 | MIT
iconv-lite | 0.4.24 | MIT
iconv-lite | 0.6.3 | MIT
ignore-walk | 3.0.3 | ISC
import-fresh | 3.3.0 | MIT
indent-string | 2.1.0 | MIT
indexof | 0.0.1 | MIT
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.8 | ISC
Inno Setup | 6.0 | Inno Setup License
in-publish | 2.0.1 | ISC
internal-slot | 1.0.3 | MIT
invariant | 2.2.4 | MIT
ip | 1.1.5 | MIT
ipaddr.js | 1.9.1 | MIT
is-arguments | 1.0.4 | MIT
is-arguments | 1.1.0 | MIT
is-arguments | 1.1.1 | MIT
isarray | 0.0.1 | MIT
isarray | 1.0.0 | MIT
isarray | 2.0.1 | MIT
is-arrayish | 0.2.1 | MIT
is-bigint | 1.0.1 | MIT
is-bluebird | 1.0.2 | MIT
is-boolean-object | 1.1.0 | MIT
is-callable | 1.1.5 | MIT
is-callable | 1.2.2 | MIT
is-callable | 1.2.4 | MIT
is-core-module | 2.6.0 | MIT
is-core-module | 2.7.0 | MIT
is-core-module | 2.8.0 | MIT
is-date-object | 1.0.2 | MIT
is-date-object | 1.0.5 | MIT
isexe | 2.0.0 | ISC
is-finite | 1.1.0 | MIT
is-fullwidth-code-point | 1.0.0 | MIT
is-fullwidth-code-point | 2.0.0 | MIT
is-negative-zero | 2.0.0 | MIT
is-negative-zero | 2.0.1 | MIT
is-number-object | 1.0.4 | MIT
is-regex | 1.0.5 | MIT
is-regex | 1.1.1 | MIT
is-regex | 1.1.4 | MIT
is-shared-array-buffer | 1.0.1 | MIT
isstream | 0.1.2 | MIT
is-string | 1.0.7 | MIT
is-symbol | 1.0.3 | MIT
is-typedarray | 1.0.0 | MIT
is-utf8 | 0.2.1 | MIT
is-weakref | 1.0.1 | MIT
js-base64 | 2.6.4 | BSD-3-Clause
jsbn | 0.1.1 | MIT
jsesc | 2.5.2 | MIT
js-file-download | 0.4.12 | MIT
json5 | 2.2.0 | MIT
jsonfile | 4.0.0 | MIT
json-parse-even-better-errors | 2.3.1 | MIT
jsonpath | 1.1.1 | MIT
json-schema | 0.4.0 | AFL-2.1 or BSD-3-Clause
json-schema-traverse | 0.4.1 | MIT
json-stringify-safe | 5.0.1 | ISC
jsonwebtoken | 8.5.1 | MIT
jsprim | 1.4.2 | MIT
js-tokens | 4.0.0 | MIT
jwa | 1.4.1 | MIT
jws | 3.2.2 | MIT
jwt-decode | 3.1.2 | MIT
ka-table | 7.3.0 | MIT
keycloak | 14.0.0 | Apache-2.0
levn | 0.3.0 | MIT
lines-and-columns | 1.2.4 | MIT
loadjs | 4.2.0 | MIT
load-json-file | 1.1.0 | MIT
locate-path | 3.0.0 | MIT
lodash | 4.17.21 | 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.merge | 4.6.2 | MIT
lodash.once | 4.1.1 | MIT
lodash.set | 4.3.2 | MIT
lodash.sum | 4.0.2 | MIT
log4js | 6.7.0 | Apache-2.0
loose-envify | 1.4.0 | MIT
loud-rejection | 1.6.0 | MIT
lru-cache | 4.1.5 | ISC
magic-string | 0.25.1 | MIT
map-obj | 1.0.1 | MIT
media-typer | 0.3.0 | MIT
memoize-one | 5.2.1 | MIT
meow | 3.7.0 | MIT
merge-descriptors | 1.0.1 | MIT
merge-source-map | 1.0.4 | MIT
methods | 1.1.2 | MIT
Microsoft.Win32.Registry | 5.0.0 | MIT
mime | 1.6.0 | MIT
mime-db | 1.43.0 | MIT
mime-types | 2.1.26 | MIT
mini-create-react-context | 0.4.1 | MIT
minimatch | 3.0.4 | ISC
minimatch | 3.0.8 | ISC
minimist | 1.2.0 | MIT
minimist | 1.2.6 | MIT
minimist | 1.2.7 | MIT
minipass | 2.9.0 | ISC
minizlib | 1.3.3 | MIT
mkdirp | 0.5.6 | MIT
moment | 2.29.4 | MIT
moment-duration-format | 2.3.2 | MIT
moment-timezone | 0.5.37 | MIT
ms | 2.0.0 | MIT
ms | 2.1.1 | MIT
ms | 2.1.2 | MIT
ms | 2.1.3 | MIT
multicast-dns | 6.2.3 | MIT
multicast-dns-service-types | 1.1.0 | MIT
nan | 2.14.0 | MIT
needle | 2.3.3 | MIT
negotiator | 0.6.2 | MIT
Newtonsoft.Json | 13.0.1 | MIT
next-tick | 1.0.0 | MIT
NLog.Database | 5.0.1 | BSD-3-Clause
NLog.Extensions.Logging | 5.0.1 | BSD-2-Clause
NLog.WindowsEventLog | 5.0.1 | BSD-3-Clause
NModbus | 3.0.62 | MIT
node-gyp | 3.8.0 | MIT
node-pre-gyp | 0.11.0 | BSD-3-Clause
node-releases | 1.1.77 | MIT
node-releases | 2.0.1 | 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
Npgsql | 6.0.5 | PostgreSQL
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
NSSM | 2.24 | Public Domain
number-is-nan | 1.0.1 | 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-assign | 4.1.1 | MIT
object-inspect | 1.11.0 | MIT
object-inspect | 1.12.2 | MIT
object-inspect | 1.7.0 | MIT
object-inspect | 1.8.0 | MIT
object-is | 1.1.3 | MIT
object-is | 1.1.5 | MIT
object-keys | 1.1.1 | MIT
once | 1.4.0 | ISC
on-finished | 2.3.0 | MIT
on-headers | 1.0.2 | MIT
OpenJDK | 16.0.1 | GPL-2.0 with Classpath Exception
optionator | 0.8.3 | MIT
osenv | 0.1.5 | ISC
os-homedir | 1.0.2 | MIT
os-tmpdir | 1.0.2 | MIT
pako | 0.2.9 | MIT
parent-module | 1.0.1 | MIT
parse-json | 2.2.0 | MIT
parse-json | 5.2.0 | MIT
parseqs | 0.0.6 | MIT
parseuri | 0.0.6 | MIT
parseurl | 1.3.3 | MIT
path-exists | 2.1.0 | MIT
path-exists | 3.0.0 | MIT
path-is-absolute | 1.0.1 | MIT
path-match | 1.2.4 | MIT
path-parse | 1.0.7 | MIT
path-to-regexp | 0.1.7 | MIT
path-to-regexp | 1.8.0 | MIT
path-type | 1.1.0 | MIT
path-type | 4.0.0 | MIT
pdfmake | 0.2.4 | MIT
pdfmake-support-chinese-fonts | 1.0.3 | MIT
performance-now | 2.1.0 | MIT
picocolors | 0.2.1 | ISC
picocolors | 1.0.0 | ISC
pify | 2.3.0 | MIT
pinkie | 2.0.4 | MIT
pinkie-promise | 2.0.1 | MIT
p-limit | 2.2.2 | MIT
p-locate | 3.0.0 | MIT
png-js | 1.0.0 | MIT
popper.js | 1.16.1 | MIT
prelude-ls | 1.1.2 | MIT
process-nextick-args | 2.0.1 | MIT
prop-types | 15.7.2 | MIT
prop-types-extra | 1.1.1 | MIT
proxy-addr | 2.0.6 | MIT
pseudomap | 1.0.2 | ISC
psl | 1.7.0 | MIT
p-try | 2.2.0 | MIT
punycode | 2.1.1 | MIT
qs | 6.10.3 | BSD-3-Clause
qs | 6.5.2 | BSD-3-Clause
qs | 6.7.0 | BSD-3-Clause
querystringify | 2.2.0 | MIT
quote-stream | 1.0.2 | MIT
RabbitMQ | 3.11.2 | MPL-2.0
RabbitMQ.Client | 6.4.0 | Apache-2.0 or MPL-2.0
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.2 | MIT
react-chartjs-2 | 4.0.1 | MIT
react-component-managers | 3.2.2 | MIT
react-contextmenu | 2.14.0 | MIT
react-datepicker | 2.16.0 | MIT
react-dom | 16.14.0 | MIT
react-dom | 17.0.2 | MIT
react-i18next | 11.12.0 | MIT
react-i18next | 11.18.6 | MIT
react-icon-base | 2.1.0 | MIT
react-icons | 2.2.7 | MIT
react-icons | 3.11.0 | MIT
react-icons | 4.2.0 | MIT
react-icons | 4.3.1 | MIT
react-input-autosize | 3.0.0 | MIT
react-is | 16.13.0 | MIT
react-is | 16.13.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-resize-detector | 7.0.0 | MIT
react-router | 5.2.0 | MIT
react-router | 5.2.1 | MIT
react-router-dom | 5.2.0 | MIT
react-router-dom | 5.3.0 | MIT
react-select | 4.3.1 | MIT
react-select | 5.0.0 | MIT
reactstrap | 8.10.0 | MIT
react-table | 6.11.4 | MIT
react-table | 7.7.0 | MIT
react-transition-group | 2.9.0 | BSD-3-Clause
react-transition-group | 4.4.2 | BSD-3-Clause
react-transition-group | 4.4.5 | BSD-3-Clause
react-widgets | 4.6.1 | MIT
readable-stream | 1.1.14 | MIT
readable-stream | 2.3.7 | MIT
read-pkg | 1.1.0 | MIT
read-pkg-up | 1.0.1 | MIT
redent | 1.0.0 | MIT
redux | 4.0.5 | MIT
redux-thunk | 2.3.0 | MIT
reflect-metadata | 0.1.13 | Apache-2.0
regenerator-runtime | 0.13.4 | MIT
regenerator-runtime | 0.13.7 | MIT
regenerator-runtime | 0.13.9 | MIT
regexp.prototype.flags | 1.3.0 | MIT
regexp.prototype.flags | 1.3.1 | MIT
regexp.prototype.flags | 1.4.3 | MIT
repeating | 2.0.1 | MIT
request | 2.88.2 | Apache-2.0
require-directory | 2.1.1 | MIT
require-main-filename | 2.0.0 | ISC
requires-port | 1.0.0 | MIT
resolve | 1.1.7 | MIT
resolve | 1.15.1 | MIT
resolve | 1.20.0 | MIT
resolve-from | 4.0.0 | MIT
resolve-pathname | 3.0.0 | MIT
retry-as-promised | 3.2.0 | MIT
rfdc | 1.3.0 | MIT
rimraf | 2.7.1 | ISC
rxjs | 7.4.0 | Apache-2.0
safe-buffer | 5.1.2 | MIT
safe-buffer | 5.2.1 | MIT
safer-buffer | 2.1.2 | MIT
sass-graph | 2.2.5 | MIT
sax | 1.2.4 | ISC
scheduler | 0.19.1 | MIT
scheduler | 0.20.2 | MIT
scope-analyzer | 2.1.2 | Apache-2.0
scss-tokenizer | 0.2.3 | MIT
semver | 5.3.0 | ISC
semver | 5.7.1 | ISC
semver | 6.3.0 | ISC
send | 0.17.1 | MIT
sequelize | 5.22.5 | MIT
sequelize-pool | 2.3.0 | MIT
serve-static | 1.14.1 | MIT
set-blocking | 2.0.0 | ISC
setprototypeof | 1.1.1 | ISC
shallow-copy | 0.0.1 | MIT
shallow-equal-object | 1.1.1 | MIT
SharpZipLib | 1.0.0 | MIT
shimmer | 1.2.1 | BSD-2-Clause
side-channel | 1.0.4 | MIT
signal-exit | 3.0.2 | ISC
socket.io | 2.5.0 | MIT
socket.io-adapter | 1.1.2 | MIT
socket.io-client | 2.5.0 | MIT
socket.io-parser | 3.3.2 | MIT
socket.io-parser | 3.3.3 | MIT
socket.io-parser | 3.4.1 | MIT
source-map | 0.1.43 | BSD-3-Clause
source-map | 0.4.4 | BSD-3-Clause
source-map | 0.5.7 | BSD-3-Clause
source-map | 0.6.1 | BSD-3-Clause
sourcemap-codec | 1.4.8 | 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
spy-on-component | 1.1.3 | MIT
sqlite3 | 4.1.1 | BSD-3-Clause
sshpk | 1.16.1 | MIT
StackExchange.Redis | 2.2.62 | MIT
static-eval | 2.0.2 | MIT
static-eval | 2.1.0 | MIT
static-module | 3.0.4 | MIT
statuses | 1.5.0 | MIT
stdout-stream | 1.4.1 | MIT
streamroller | 3.1.3 | MIT
string.prototype.replaceall | 1.0.5 | MIT
string.prototype.trimend | 1.0.2 | MIT
string.prototype.trimend | 1.0.4 | 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.4 | MIT
string_decoder | 0.10.31 | MIT
string_decoder | 1.1.1 | MIT
string-width | 1.0.2 | MIT
string-width | 2.1.1 | MIT
string-width | 3.1.0 | MIT
strip-ansi | 3.0.1 | MIT
strip-ansi | 4.0.0 | MIT
strip-ansi | 5.2.0 | MIT
strip-bom | 2.0.0 | MIT
strip-indent | 1.0.1 | MIT
strip-json-comments | 2.0.1 | MIT
stylis | 4.0.10 | MIT
stylis | 4.0.13 | MIT
supports-color | 2.0.0 | MIT
supports-color | 5.5.0 | MIT
Swashbuckle.AspNetCore | 6.4.0 | MIT
Swashbuckle.AspNetCore.Annotations | 6.4.0 | MIT
symbol-observable | 1.2.0 | MIT
System.Collections.Immutable | 5.0.0 | MIT
System.ComponentModel.Annotations | 5.0.0 | MIT
System.Data.SQLite.Core | 1.0.112.0 | Public Domain
System.Data.SQLite.Core | 1.0.116.0 | Public Domain
tar | 2.2.2 | ISC
tar | 4.4.19 | ISC
through | 2.3.8 | MIT
through2 | 2.0.5 | MIT
thunky | 1.1.0 | MIT
tiny-inflate | 1.0.3 | MIT
tiny-invariant | 1.1.0 | MIT
tiny-warning | 1.0.3 | MIT
to-array | 0.1.4 | MIT
to-fast-properties | 2.0.0 | MIT
toidentifier | 1.0.0 | MIT
toposort-class | 1.0.1 | MIT
tough-cookie | 2.5.0 | BSD-3-Clause
trim-newlines | 1.0.0 | MIT
true-case-path | 1.0.3 | Apache-2.0
tslib | 2.1.0 | 0BSD
tslib | 2.3.1 | 0BSD
tunnel-agent | 0.6.0 | Apache-2.0
tweetnacl | 0.14.5 | Unlicense
type | 1.2.0 | ISC
type | 2.5.0 | ISC
type | 2.6.0 | ISC
type-check | 0.3.2 | MIT
typedarray | 0.0.6 | MIT
typed-styles | 0.0.7 | MIT
type-is | 1.6.18 | MIT
unbox-primitive | 1.0.1 | MIT
uncontrollable | 7.1.1 | MIT
underscore | 1.12.1 | MIT
unicode-properties | 1.3.1 | MIT
unicode-trie | 2.0.0 | MIT
universalify | 0.1.2 | MIT
unpipe | 1.0.0 | MIT
uri-js | 4.2.2 | BSD-2-Clause
url-parse | 1.5.10 | 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.2 | MIT
validate-npm-package-license | 3.0.4 | Apache-2.0
validator | 13.7.0 | MIT
value-equal | 1.0.1 | MIT
vary | 1.1.2 | MIT
verror | 1.10.0 | MIT
void-elements | 3.1.0 | MIT
warning | 3.0.0 | BSD-3-Clause
warning | 4.0.3 | MIT
which | 1.3.1 | ISC
which-boxed-primitive | 1.0.2 | MIT
which-module | 2.0.0 | ISC
wide-align | 1.1.3 | ISC
wkx | 0.4.8 | MIT
word-wrap | 1.2.3 | MIT
wrap-ansi | 5.1.0 | MIT
wrappy | 1.0.2 | ISC
ws | 7.4.6 | MIT
xmldoc | 1.1.2 | MIT
xmlhttprequest-ssl | 1.6.3 | MIT
xtend | 4.0.2 | MIT
y18n | 4.0.3 | ISC
yallist | 2.1.2 | ISC
yallist | 3.1.1 | ISC
yaml | 1.10.2 | ISC
yargs | 13.3.2 | MIT
yargs-parser | 13.1.2 | ISC
yeast | 0.1.2 | 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 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

HOW TO APPLY THE APACHE LICENSE TO YOUR WORK

Include a copy of the Apache License, typically in a file called LICENSE, in your work, and consider also including a NOTICE file that references the License.

To apply the Apache License to specific files in your work, attach the following boilerplate declaration, replacing the fields enclosed by brackets "[]" with your own identifying information. (Don't include the brackets!) Enclose the text in the appropriate comment syntax for the file format. We also recommend that you include a file or class name and description of purpose 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) license

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.

# GNU General Public License, v.2, with Classpath Exception

GNU General Public License, version 2, with the Classpath Exception

The GNU General Public License (GPL)

Version 2, June 1991

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

59 Temple Place, Suite 330, Boston, MA 02111-1307 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.

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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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.

"CLASSPATH" EXCEPTION TO THE GPL

Certain source files distributed by Oracle America and/or its affiliates are subject to the following clarification and special exception to the GPL, but only where Oracle has expressly included in the particular source file's header the words "Oracle designates this particular file as subject to the "Classpath" exception as provided by Oracle in the LICENSE file that accompanied this code."

Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination.

As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.

ADDITIONAL INFORMATION ABOUT LICENSING

Certain files distributed by Oracle America, Inc. and/or its affiliates are subject to the following clarification and special exception to the GPLv2, based on the GNU Project exception for its Classpath libraries, known as the GNU Classpath Exception.

Note that Oracle includes multiple, independent programs in this software package. Some of those programs are provided under licenses deemed incompatible with the GPLv2 by the Free Software Foundation and others. For example, the package includes programs licensed under the Apache License, Version 2.0 and may include FreeType. Such programs are licensed to you under their original licenses.

Oracle facilitates your further distribution of this package by adding the Classpath Exception to the necessary parts of its GPLv2 code, which permits you to use that code in combination with other independent modules not licensed under the GPLv2. However, note that this would not permit you to commingle code under an incompatible license with Oracle's GPLv2 licensed code by, for example, cutting and pasting such code into a file also containing Oracle's GPLv2 licensed code and then distributing the result.

Additionally, if you were to remove the Classpath Exception from any of the files to which it applies and distribute the result, you would likely be required to license some or all of the other code in that distribution under the GPLv2 as well, and since the GPLv2 is incompatible with the license terms of some items included in the distribution by Oracle, removing the Classpath Exception could therefore effectively compromise your ability to further distribute the package.

Failing to distribute notices associated with some files may also create unexpected legal consequences.

Proceed with caution and we recommend that you obtain the advice of a lawyer skilled in open source matters before removing the Classpath Exception or making modifications to this package which may subsequently be redistributed and/or involve the use of third party software.

# 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-2022 Jordan Russell. All rights reserved.
Portions Copyright (C) 2000-2022 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 Software License

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.

# Mozilla Public License, v.2.0 (MPL-2.0)

Mozilla Public License

Version 2.0

1. Definitions 1.1. "Contributor" means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software.

1.2. "Contributor Version" means the combination of the Contributions of others (if any) used by a Contributor and that particular Contributor’s Contribution.

1.3. "Contribution" means Covered Software of a particular Contributor.

1.4. "Covered Software" means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof.

1.5. "Incompatible With Secondary Licenses" means

that the initial Contributor has attached the notice described in Exhibit B to the Covered Software; or

that the Covered Software was made available under the terms of version 1.1 or earlier of the License, but not also under the terms of a Secondary License.

1.6. "Executable Form" means any form of the work other than Source Code Form.

1.7. "Larger Work" means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software.

1.8. "License" means this document.

1.9. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License.

1.10. "Modifications" means any of the following:

any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or

any new file in Source Code Form that contains any Covered Software.

1.11. "Patent Claims" of a Contributor means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such Contributor that would be infringed, but for the grant of the License, by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version.

1.12. "Secondary License" means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses.

1.13. "Source Code Form" means the form of the work preferred for making modifications.

1.14. "You" (or "Your") means an individual or a legal entity exercising rights under 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 (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. License Grants and Conditions 2.1. Grants Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license:

under intellectual property rights (other than patent or trademark) Licensable by such Contributor to use, reproduce, make available, modify, display, perform, distribute, and otherwise exploit its Contributions, either on an unmodified basis, with Modifications, or as part of a Larger Work; and

under Patent Claims of such Contributor to make, use, sell, offer for sale, have made, import, and otherwise transfer either its Contributions or its Contributor Version.

2.2. Effective Date The licenses granted in Section 2.1 with respect to any Contribution become effective for each Contribution on the date the Contributor first distributes such Contribution.

2.3. Limitations on Grant Scope The licenses granted in this Section 2 are the only rights granted under this License. No additional rights or licenses will be implied from the distribution or licensing of Covered Software under this License. Notwithstanding Section 2.1(b) above, no patent license is granted by a Contributor:

for any code that a Contributor has removed from Covered Software; or

for infringements caused by: (i) Your and any other third party’s modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or

under Patent Claims infringed by Covered Software in the absence of its Contributions.

This License does not grant any rights in the trademarks, service marks, or logos of any Contributor (except as may be necessary to comply with the notice requirements in Section 3.4).

2.4. Subsequent Licenses No Contributor makes additional grants as a result of Your choice to distribute the Covered Software under a subsequent version of this License (see Section 10.2) or under the terms of a Secondary License (if permitted under the terms of Section 3.3).

2.5. Representation Each Contributor represents that the Contributor believes its Contributions are its original creation(s) or it has sufficient rights to grant the rights to its Contributions conveyed by this License.

2.6. Fair Use This License is not intended to limit any rights You have under applicable copyright doctrines of fair use, fair dealing, or other equivalents.

2.7. Conditions Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in Section 2.1.

3. Responsibilities 3.1. Distribution of Source Form All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not attempt to alter or restrict the recipients’ rights in the Source Code Form.

3.2. Distribution of Executable Form If You distribute Covered Software in Executable Form then:

such Covered Software must also be made available in Source Code Form, as described in Section 3.1, and You must inform recipients of the Executable Form how they can obtain a copy of such Source Code Form by reasonable means in a timely manner, at a charge no more than the cost of distribution to the recipient; and

You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the recipients’ rights in the Source Code Form under this License.

3.3. Distribution of a Larger Work You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software. If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s).

3.4. Notices You may not remove or alter the substance of any license notices (including copyright notices, patent notices, disclaimers of warranty, or limitations of liability) contained within the Source Code Form of the Covered Software, except that You may alter any license notices to the extent required to remedy known factual inaccuracies.

3.5. Application of Additional Terms You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, You may do so only on Your own behalf, and not on behalf of any Contributor. You must make it absolutely clear that any such warranty, support, indemnity, or liability obligation is offered by You alone, and You hereby agree to indemnify every Contributor for any liability incurred by such Contributor as a result of warranty, support, indemnity or liability terms You offer. You may include additional disclaimers of warranty and limitations of liability specific to any jurisdiction.

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 Software 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 placed in a text file included with all distributions of the Covered Software under this License. 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. Termination 5.1. The rights granted under this License will terminate automatically if You fail to comply with any of its terms. However, if You become compliant, then the rights granted under this License from a particular Contributor are reinstated (a) provisionally, unless and until such Contributor explicitly and finally terminates Your grants, and (b) on an ongoing basis, if such Contributor fails to notify You of the non-compliance by some reasonable means prior to 60 days after You have come back into compliance. Moreover, Your grants from a particular Contributor are reinstated on an ongoing basis if such Contributor notifies You of the non-compliance by some reasonable means, this is the first time You have received notice of non-compliance with this License from such Contributor, and You become compliant prior to 30 days after Your receipt of the notice.

5.2. If You initiate litigation against any entity by asserting a patent infringement claim (excluding declaratory judgment actions, counter-claims, and cross-claims) alleging that a Contributor Version directly or indirectly infringes any patent, then the rights granted to You by any and all Contributors for the Covered Software under Section 2.1 of this License shall terminate.

5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or Your distributors under this License prior to termination shall survive termination.

6. Disclaimer of Warranty Covered Software is provided under this License on an "as is" basis, without warranty of any kind, either expressed, implied, or statutory, including, without limitation, warranties that the Covered Software 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 Software is with You. Should any Covered Software prove defective in any respect, You (not any 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 Software is authorized under this License except under this disclaimer.

7. Limitation of Liability Under no circumstances and under no legal theory, whether tort (including negligence), contract, or otherwise, shall any Contributor, or anyone who distributes Covered Software as permitted above, be liable to You for any direct, indirect, special, incidental, or consequential damages of any character including, without limitation, damages for lost profits, 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.

8. Litigation Any litigation relating to this License may be brought only in the courts of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing in this Section shall prevent a party’s ability to bring cross-claims or counter-claims.

9. 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. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not be used to construe this License against a Contributor.

10. Versions of the License 10.1. New Versions Mozilla Foundation is the license steward. Except as provided in Section 10.3, no one other than the license steward has the right to modify or publish new versions of this License. Each version will be given a distinguishing version number.

10.2. Effect of New Versions You may distribute the Covered Software under the terms of the version of the License under which You originally received the Covered Software, or under the terms of any subsequent version published by the license steward.

10.3. Modified Versions If you create software not governed by this License, and you want to create a new license for such software, you may create and use a modified version of this License if you rename the license and remove any references to the name of the license steward (except to note that such modified license differs from this License).

10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses If You choose to distribute Source Code Form that is Incompatible With Secondary Licenses under the terms of this version of the License, the notice described in Exhibit B of this License must be attached.

Exhibit A - Source Code Form License Notice This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.

If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice.

You may add additional accurate notices of copyright ownership.

Exhibit B - "Incompatible With Secondary Licenses" Notice This Source Code Form is "Incompatible With Secondary Licenses", as defined by the Mozilla Public License, v. 2.0.

# PostgreSQL License

Portions Copyright © 1996-2022, The PostgreSQL Global Development Group

Portions Copyright © 1994, The Regents of the University of California

Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies.

IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

# 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/>

## Applies to: