Saravanan666/pypi-org huggingface dataset:
Package: aws-mfa-profiles
aws-mfa-profilesA package to create credential for AWS using MFA and with the support of multiple profilesThis package wants to simplify the connection to AWS using the MFA supporting also the possibility to use yours profiles.InstallationYou can install the package usingpip install aws-mfa-profiles.UsageThere is a little help function callable withaws-mfa-profiles -hthat it shows this:usage: aws-mfa-profiles [-h] [-p profile] [-t seconds]

Set credential to connect on AWS using MFA

optional arguments:
  -h, --help  show this help message and exit
  -p profile  Profile from which get mfa configuration
  -t seconds  Token expiration time in second from 900 (15 minutes) to 129600 (36 hours) (default: 43200)I set default value for the expiration time session which is43200for the expiration time session, this means that the default section is valid for 12 hours. Take in mind that if you use the AWS owner account (root), you can set the session time at maximum at3600seconds.How does it works?The package read from your${HOME}/.aws/credentialsfile the accounts that you specified and generate a new section in the same file named${profile_name_selected/choosed}-mfawith the credentials generated.
Then, you need to define this new account as default for the profiles that you have on${HOME}/.aws/configcredentials:[account_one]aws_access_key_id=YOUR_ACCESS_KEY_IDaws_secret_access_key=YOUR_SECRET_ACCESS_KEYmfa_serial=YOUR_MFA_ARN[account_two]aws_access_key_id=YOUR_ACCESS_KEY_IDaws_secret_access_key=YOUR_SECRET_ACCESS_KEYmfa_serial=YOUR_MFA_ARN[account_one-mfa]aws_access_key_id=YOUR_TEMPORARY_ACCESS_KEY_IDaws_secret_access_key=YOUR_TEMPORARY_SECRET_ACCESS_KEYaws_session_token=YOUR_TEMPORARY_SESSION_TOKEN[account_two-mfa]aws_access_key_id=YOUR_TEMPORARY_ACCESS_KEY_IDaws_secret_access_key=YOUR_TEMPORARY_SECRET_ACCESS_KEYaws_session_token=YOUR_TEMPORARY_SESSION_TOKENconfig:[default]region=eu-west-1cli_pager=[profile profile-that-use-mfa-from-account_one]role_arn=arn:aws:iam::111111111111:role/your_rolesource_profile=account_one-mfa[profile profile-that-use-mfa-from-account_two]role_arn=arn:aws:iam::222222222222:role/your_rolesource_profile=account_two-mfa
Package: aws-mfa-util
概要AWS CLIをMFAの認証付きで利用する場合、少々手間がかかるので、
MFA認証済みのクレデンシャルを発行する手順を自動化するツールを作成。MFA用プロファイルの新規作成とクレデンシャル情報の更新を行うことが可能です。
MFA用プロファイルの認証情報は有効期限12時間で設定しています。依存するライブラリ一覧boto3PyInquirerインストール方法$ pip install aws-mfa-util使い方まず、動作の前提条件は下記です。~/.aws/credentialファイルが存在する~/.aws/credentialファイル内に適切なプロファイルが設定されている~/.aws/credentialファイル内に、適切なmfa_serialが設定されている具体的には、下記のような設定が最低限必要です。
以降の説明は、testAというプロファイルが設定されている想定で記載します。[testA]
aws_access_key_id=abcde1234
aws_secret_access_key=abcde1234
mfa_serial=arn:aws:iam::12345678:mfa/test1MFA用プロファルを新規作成するコマンドを実行します。$ aws-mfa-utilすると、下記のような選択肢が表示されます。$ aws-mfa-util
? 希望する処理を選択してください (Use arrow keys)
> MFA用プロファイルを新規作成
  MFA用プロファイルの認証情報を更新新規作成する場合は、「MFA用プロファイルを新規作成」を選択し、Enterを押してください。
すると、下記の様に表示されます。$ aws-mfa-util
? 希望する処理を選択してください MFA用プロファイルを新規作成
? MFA用に新規作成するプロファイルを選択してください (Use arrow keys)
> testA今回はtestAというプロファイル1つしか設定していませんが、複数設定している場合は、複数のプロファイルが表示されます。
MFA用に新規作成したいプロファイルを選択して、Enterを押します。
すると、下記のように表示されます。$ aws-mfa-util
? 希望する処理を選択してください MFA用プロファイルを新規作成
? MFA用に新規作成するプロファイルを選択してください testA
? ワンタイムパスワードを入力してくださいマネジメントコンソールに入力しているワンタイムパスワードを入力します。
(Authyなどで表示するコードです)
入力後、Enterを押します。$ aws-mfa-util
? 希望する処理を選択してください MFA用プロファイルを新規作成
? MFA用に新規作成するプロファイルを選択してください testA
? ワンタイムパスワードを入力してください 123456
MFA用プロファイルの新規作成が完了しました。「MFA用プロファイルの新規作成が完了しました。」という表示が出ていれば、設定完了です。
testA-mfaという形で、既存のプロファイル名の末尾に、「-mfa」がついたプロファイルが新規作成されます。既存のMFA用プロファイルの認証情報を更新するコマンドを実行します。$ aws-mfa-utilすると、下記のような選択肢が表示されます。$ aws-mfa-util
? 希望する処理を選択してください (Use arrow keys)
  MFA用プロファイルを新規作成
> MFA用プロファイルの認証情報を更新「MFA用プロファイルの認証情報を更新」を選択し、Enterを押します。
すると、下記のように表示されます。$ aws-mfa-util
? 希望する処理を選択してください MFA用プロファイルの認証情報を更新
? 更新するMFAプロファイルを選択してください (Use arrow keys)
> testA-mfa新規作成したMFA用プロファイルを選択し、Enterを押します。
すると、下記のように表示されますので、ワンタイムパスワードを入力し、Enterを押します。$ aws-mfa-util
? 希望する処理を選択してください MFA用プロファイルの認証情報を更新
? 更新するMFAプロファイルを選択してください testA-mfa
? ワンタイムパスワードを入力ください 123456最終的に、下記のように表示されていれば、更新は完了です。$ aws-mfa-util
? 希望する処理を選択してください MFA用プロファイルの認証情報を更新
? 更新するMFAプロファイルを選択してください testA-mfa
? ワンタイムパスワードを入力ください 123456
MFA用プロファイルの認証情報更新が完了しました。
Package: awsmfunc
awsmfuncRequirementsPython 3.9 minimumvapoursynthnumpyRemapFramesFillBordersOptional plugins:vs-placebovapoursynth-descalevapoursynth-bilateralvsfpngSetting uppip install --user awsmfuncFromgitpip install --user git+https://github.com/OpusGang/awsmfunc.gitUpdating everythingpip install --user --upgrade --force-reinstall .DependenciesrektvsutilRecommended VS Community Python ModulesSee WikiContactIRC Channel:#OpusGangonirc.libera.chat
Package: aws-ml-helper
AWS ML Helper is a command line tool that enables easy setup and spot instance
manipulation on AWS for Machine Learning.SetupInstallaws-ml-helper, configure it and create a VPC:$ pip install aws-ml-helper
$ aml config
$ aml setup-vpcNow you can use all the commands:$ aml --help
Usage: aml [OPTIONS] COMMAND [ARGS]...

Options:
  --config PATH   Path to the alternative configuration file.
  --profile TEXT  Configuration file profile.
  --help          Show this message and exit.

Commands:
  config       Configure AWS ML Helper.
  config-get   Get config value.
  config-list  List all configuration values.
  config-set   Set config value.
  instances    List all instances and their states.
  login        Login to instance.
  run          Run command on a selected instance.
  setup-vpc    Setup VPC on Amazon AWS.
  shell        Run IPython shell with loaded configuration.
  spot-price   Show information about spot instance prices.
  spot-run     Starts a spot instance.
  terminate    Terminate instance.
Package: aws-mlops
AWS MLOps package is implemented to help you like a framework for deploying what it is necessary to manage your models.The goal is to implement this package to keep your focus on your prep and test code using the AWS SageMaker services, AWS Step Functions and AWS Lambda.It is part of theeducational repositoriesto learn how to write stardard code and common uses of the TDD and CI / CD.PrerequisitesYou can useServerless frameworkfor deploying the AWS services:
if you want to use the guide below, you have to installnpm(Node Package Manager) before.If you want to use another AWS tool, you can see the repositoryaws-tool-comparisonbefore to implement your version.InstallationThe package is not self-consistent. So you have to download the package by github and to install the requirements before to deploy theexampleon AWS:gitclonehttps://github.com/bilardi/aws-mlopscdaws-mlops/npminstallexportAWS_PROFILE=your-accountexportSTAGE=studiobashexample/deploy.shOr if you want to use this package into your code, you can install by python3-pip:pip3installaws_mlopspython3>>>importaws_mlops>>>help(aws_mlops)Read the documentation onreadthedocsforUsageDevelopmentChange LogSeeCHANGELOG.mdfor details.LicenseThis package is released under the MIT license.  SeeLICENSEfor details.
Package: aws-multi-region-search
Multi-Region Multi-Threaded AWS Search ToolUsage Examples:RDS:list rds instances in every regionawss rds listEC2:find any ec2 instances running a specific eks versionawss -w 27 -p dev ec2 ami-instances -o 602401143452 -n amazon-eks-node-1.24-v2023030find any ec2 instances running ubuntu 18.04awss -w 27 -p dev-adm ec2 ami-instances -o 099720109477 -n '*18.04*'STS:check which regions aws credentials work inawss -w 27 sts check
Package: awsnap
AWSnap: AWS SSO UtilityAWSnap is a simple and effective tool for managing AWS Single Sign-On (SSO). Tailored for both developers and administrators, AWSnap offers an easy way to streamline your AWS SSO process, including running custom shell commands with specific profiles and exporting temporary AWS credentials.FeaturesEasy Integration: Seamlessly integrate with existing AWS infrastructure.Secure Authentication: Enhance security with robust SSO capabilities.Customizable: Extend and adapt AWSnap to suit your specific needs.Run Custom Commands: Execute shell commands with AWS profiles and export temporary credentials in memory.Temporary AWS Credentials: Access temporary AWS credentials specific to a profile, securely available in memory.InstallationYou can install AWSnap via pip:pipinstallawsnapUsageGetting started with AWSnap is easy:To generate temporary AWS credentials for a specific profile:awsnap-p<profile_name>This will generate temporary AWS credentials for the specified profile and store them in the ~/.aws/credentials file.To open your AWS console in a browser session:awsnap<your_command_here>--profile<profile_name>--consoleTo get help:awsnap--helporgoseeatherapist.The project is available onpypip.ContributingContributions are welcome! Check out theissuesor submit a pull request.LicenseAWSnap is released under theMIT License.Feel free to reach out with questions, suggestions, or just to say hello. Happy coding!Contact InformationAuthor: Aaron WestEmail:aphexlog@gmail.comThank you for your interest in AWSnap! Follow the project onGitHubfor the latest updates...
Package: aws-nsm-interface
AWS Nitro Secure Module (NSM) interface in native PythonThis library offers a native Python interface to the/dev/nsmdevice in AWS Nitro Enclaves.InstallationTo installaws_nsm_interface, run:pip install aws_nsm_interfaceRequirementsTo install: python>=3.6To run: a Python application running in an AWS Nitro EnclaveQuickstartimportaws_nsm_interfacefile_desc=aws_nsm_interface.open_nsm_device()rand_bytes=aws_nsm_interface.get_random(file_desc,12)# Get 12 random bytes from /dev/nsmprint(rand_bytes)public_rsa_key=b'1234'# An RSA public key exported as DERattestation_doc=aws_nsm_interface.get_attestation_doc(file_desc,public_key=public_rsa_key)['document']attestation_doc_b64=base64.b64encode(attestation_doc).decode('utf-8')aws_nsm_interface.close_nsm_device(file_desc)# Use `attestation_doc_b64` in your AWS KMS Decrypt callPublic methodsThe Python AWS NSM interface provides the following functions:# open_nsm_device() returns a file object for /dev/nsmopen_nsm_device()->typing.TextIO# close_nsm_device() closes the file objectclose_nsm_device(file_handle:typing.TextIO)->None# All of the functions below raise an IoctlError in case of an exception.# Generate up to 256 random bytes with /dev/nsm. Returns the raw bytes.get_random(file_handle:typing.TextIO,length:int=32)->bytes# Example output: b'se\xb7\x05O<:\x07W\x8cfn'# Return an attestation doc generated by /dev/nsm. `user_data`, `nonce` and# `public_key` are all binary (bytes) and optional.get_attestation_doc(file_handle:typing.TextIO,user_data:bytes=None,nonce:bytes=None,public_key:bytes=None)->dict# Example output: {'document': b'\x84D\xa1\x018"\xa0Y ...# \xeb|\x1b\xf6\xb6\x95\xb4\x9c[+x\x8b'}# Describe the NSM and known PCRs.describe_nsm(file_handle:typing.TextIO)->dict# Example output: {'version_major': 1, 'version_minor': 0, 'version_patch': 0,# 'module_id': 'i-00c89f181802cdef4-enc0175cd0dcee36866', 'max_pcrs': 32,# 'locked_pcrs': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],# 'digest': 'SHA384'}# Extend a PCR at the given index. Raises an IoctlError if the PCR is locked.# Returns the new data for the PCR.extend_pcr(file_handle:typing.TextIO,index:int,data:bytes)->dict# Example output: {'data': b'\x9c\t\x15Rk\xb6(R~+mi\xabs ...# \xf6j\xf8\xbf\xa3*A\x19\xc0\x0cr\x15\xdf\x1b'}# Returns a dictionary with the lock status and PCR data for the PCR at the# given index (index 0 returns PCR0, and so on).describe_pcr(file_handle:typing.TextIO,index:int)->dict# Example output: {'lock': False, 'data': b'\x9c\t\x15Rk\xb6(R~ ...# \x15\xdf\x1b'}# lock_pcr() locks the PCR at the given index.lock_pcr(file_handle:typing.TextIO,index:int)->bool# lock_pcrs() locks the PCRs from 0 up to the given lock_range.# For example: a range of 5 will lock PCRs [0, 1, 2, 3, 4] - a range# of 5 starting at 0.lock_pcrs(file_handle:typing.TextIO,lock_range:int)->bool
Package: aws-nsm-interface-verifiably
AWS Nitro Secure Module (NSM) interface in native PythonThis library offers a native Python interface to the/dev/nsmdevice in AWS Nitro Enclaves. This is an updated version fromaws-nsm-interface.InstallationTo installaws_nsm_interface_verifiably, run:pip install aws_nsm_interface_verifiablyRequirementsTo install: python>=3.6To run: a Python application running in an AWS Nitro EnclaveQuickstartimportbase64importaws_nsm_interface_verifiablyfile_desc=aws_nsm_interface_verifiably.open_nsm_device()rand_bytes=aws_nsm_interface_verifiably.get_random(file_desc,12)# Get 12 random bytes from /dev/nsmprint(rand_bytes)public_rsa_key=b'1234'# An RSA public key exported as DERattestation_doc=aws_nsm_interface_verifiably.get_attestation_doc(file_desc,public_key=public_rsa_key)['document']attestation_doc_b64=base64.b64encode(attestation_doc).decode('utf-8')aws_nsm_interface_verifiably.close_nsm_device(file_desc)# Use `attestation_doc_b64` in your AWS KMS Decrypt call
Package: aws-nuke-exporter
AWS Nuke ExporterHit the Star! :star:If you find this repository useful, please consider giving it a star. Your support is greatly appreciated! :pray:DescriptionAWS Nuke Exporter is a Python tool designed to parse and export the output logs of theaws-nukecommand into more structured and readable formats: JSON or CSV. This tool simplifies the process of analyzing and storing the results generated by AWS Nuke, making it easier for users to review and track the resources managed by AWS Nuke.FeaturesMultiple Output Formats: Supports exporting data into JSON or CSV formats.Detailed Parsing: Extracts detailed information from the AWS Nuke logs, including resource types, IDs, regions, and additional details.Customizable Export Paths: Allows users to specify custom paths for the exported data.RequirementsPython 3AWS CLI (foraws-nukecommand execution)InstallationFrom PyPIYou can installaws-nuke-exporterdirectly from PyPI:pipinstallaws-nuke-exporterThis command will install the latest version of theaws-nuke-exporterpackage along with all necessary dependencies.From SourceAlternatively, you can clone the repository and install it manually:gitclonehttps://github.com/oijkn/aws-nuke-exporter.gitcdaws-nuke-exporter
pythonsetup.pyinstallUsageAfter installation, you can useaws-nuke-exporterfrom the command line:aws-nuke-exporter<path-to-aws-nuke-output>-f<format>-d<destination-path>Argumentspath-to-aws-nuke-output: The file path where AWS Nuke output is stored.-f, --format [json|csv]: The output format. Choose between JSON and CSV (default: JSON).-d, --destination: The path where the exported file will be saved (optional).-q, --quiet: Run in quiet mode, no logs will be printed to stdout (default: False).-v, --version: Prints the version of the tool.ExamplesExport AWS Nuke output to JSON:aws-nuke-exporteroutput.log-fjsonExport AWS Nuke output to CSV with a custom destination:aws-nuke-exporteroutput.log-fcsv-d/path/to/export.csvContributingContributions to the AWS Nuke Exporter are welcome. Please ensure that your code adheres to the existing style and that all tests pass.LicenseThis project is licensed under theGNU General Public License (GPL).ContactFor any questions or feedback, please open an issue on GitHub.TODO:Add Dockerfiledocker run --rm -v ./:/data test /data/aws-nuke-output.txt -d /data/export.json
Package: aws-oidc-broker
AWS OpenID Credential BrokerOpenID Based Identity Credential Broker for AWS (Built as an alternative to AWS SSO to support OpenID Federation)Broker authentication flowsequenceDiagram;

participant User;
participant Broker;
participant IDP;
participant AWS;

User -->> Broker: Login via IDP
Broker -->> IDP: Forward Auth Request
IDP -->> Broker: IDP Login Successful
User -->> Broker: Open AWS Console
Broker -->> AWS: Request Session
AWS -->> Broker: Login Successfull
Broker -->> Browser: Open AWS ConsoleGetting StartedQuick Start with docker composedocker-composeup-dPrerequisitespython3virtualenvdockerdocker-composeInstallingA step by step series of examples that tell you how to get a development env runningClone the Projectgitclonehttps://github.com/Rishang/aws-oidc-broker.gitInitialzing virtualenvcdaws-oidc-broker
python-mvenvvenvsource./venv/bin/activateInstalling Dependenciespipinstall-rrequirements.txtConfigure .env file or perform export of those variablescp.env.example.envConfigure environment variables as required.Environment Variables for KEYCLOAK integrationVARIABLE NAMEExample VALUEDESCRIPTIONREQUIREDKEYCLOAK_CLIENT_IDaws-oidcClient IDyesKEYCLOAK_WELLKNOWNhttps://example.dev/realms/test/.well-known/openid-configurationKeycloak well-known openid URLyesAPP_SECRET!apppasswdoptional env variable to set encrytion secretnoTITLEExample BrokerTitle to display on Broker UInoDeploymentAdd additional notes about how to deploy this on a live systemBuilt WithFlask- The web framework usedVueJs- The web framework for building web user interfaces.
Package: aws-oidc-login
Log in to AWS using OpenID ConnectThe aim for this is to create a general purpose CLI OIDC login with a limited set of trusted dependencies.Tested with Azure AD. Your mileage may vary with other providers, please let us know!Setup (Azure AD example)Create Azure AD AppSet public client reply url tohttp://localhostAdd an appRole (may be unnecessary)Add users(s) to the role (to the app)Create an AWS OIDC identity providerAuthority URL will behttps://login.microsoftonline.com/<AAD tenant id>/oauth2/v2.0Add your AAD app client id as audienceCreate a web identity role with permissions you'd likeEdit trust relationship for the role to allow role assumption with tokens issued by AAD for your appAdd parameters under a suitable profile ~/.aws/config:Add your application id (client id) from AAD appAdd your AAD tenant idoidc_authority_url=https://login.microsoftonline.com/<AAD tenant id>/oauth2/v2.0oidc_client_id=<id of your AAD app>oidc_role_arn=<ARN of the role you are assuming on AWS>Install aws-oidc-loginClone this repo and runpip install aws-oidc-logininside it.RunThe executable is calledaol. Log in with default profile by simply runningaolor specify a profile withaol [profile].Seeaol -hfor more options.
Package: awsome-validity
awsome-validityThe validity of the email,phone number,password ...usagepip install awsome-validityfromvalidityimportvalidatecheck=validate.Validation()# check what you want.check.validate_email('1111@qq.com')# Truecheck.validate_password('1111@qq.com')# Truecheck.validate_password('12345678899')# FalsetodoFurther features will be added in the future.referencehttps://packaging.python.org/en/latest/tutorials/packaging-projects/
Package: aws-opsworks-smooth-deploy
# aws-opsworks-smooth-deploy
Deploy script executed inside AWS opsworks instances to avoid error request from ELB.Before starting the deployment process, execute`aws-opsworks-smooth-deploydetach--opsworks-stack-id=<STACK-ID>`After the deployment process finish, execute`aws-opsworks-smooth-deployattach--opsworks-stack-id=<STACK-ID>`
Package: aws-orbit-jupyterlab-orbit
jupyterlab_orbitA JupyterLab extension.This extension is composed of a Python package namedjupyterlab_orbitfor the server extension and a NPM package namedjupyterlab_orbitfor the frontend extension.RequirementsJupyterLab >= 3.0Installpipinstall-ejupyterlab_orbitTroubleshootIf you are seeing the frontend extension, but it is not working, check
that the server extension is enabled:jupyterserverextensionlistIf the server extension is installed and enabled, but you are not seeing
the frontend extension, check the frontend extension is installed:jupyterlabextensionlistContributingDevelopment installNote: You will need NodeJS to build the extension package.Thejlpmcommand is JupyterLab's pinned version ofyarnthat is installed with JupyterLab. You may useyarnornpmin lieu ofjlpmbelow.# Clone the repo to your local environment# Change directory to the jupyterlab_orbit directory# Install package in development modepipinstall-e.# Link your development version of the extension with JupyterLabjupyterlabextensiondevelop.--overwrite# Rebuild extension Typescript source after making changesjlpmrunbuildYou can watch the source directory and run JupyterLab at the same time in different terminals to watch for changes in the extension's source and automatically rebuild the extension.# Watch the source directory in one terminal, automatically rebuilding when neededjlpmrunwatch# Run JupyterLab in another terminaljupyterlabWith the watch command running, every saved change will immediately be built locally and available in your running JupyterLab. Refresh JupyterLab to load the change in your browser (you may need to wait several seconds for the extension to be rebuilt).By default, thejlpm run buildcommand generates the source maps for this extension to make it easier to debug using the browser dev tools. To also generate source maps for the JupyterLab core extensions, you can run the following command:jupyterlabbuild--minimize=FalseUninstallpipuninstalljupyterlab_orbit
Package: aws-orga-deployer
AWS Orga DeployerRead the documentation:https://malaval.github.io/aws-orga-deployerMedium story:https://medium.com/@malavaln/why-i-built-my-own-tool-to-deploy-landing-zones-on-aws-9ed609c1cb25IntroductionAWS Orga Deployer makes it easier to deploy and manage infrastructure-as-code at the scale of an AWS organization. It enables to deploy Terraform or CloudFormation templates and to execute Python scripts in multiple AWS accounts and multiple regions, making it particularly suitable for building AWS foundations (or Landing Zones).To get started, develop modules (Terraform or CloudFormation templates or Python scripts), create a package definition file to specify which modules to deploy in which accounts and regions and using which parameters, and let AWS Orga Deployer deploy modules and manage dependencies between deployments.InstallationAWS Orga Deployer is a Python package with a command-line interface. To install it and check that it works:pipinstallaws-orga-deployer
aws-orga-deployer--helpDocumentationThe documentation is available athttps://malaval.github.io/aws-orga-deployer. For an example of how to use AWS Orga Deployer,  read theGetting Startedpage.MIT LicenseCopyright (c) 2023 Nicolas MalavalPermission 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.