1.1.3 • Published 6 months ago

ftps-cg-lib v1.1.3

Weekly downloads
-
License
ISC
Repository
-
Last release
6 months ago

N|Solid

ftps-cg-lib

https://github.com/CloudGenUser/ftps-cg-lib

1. Introduction

This code has the objective to establish a connection to a FTPS server and depending of the option selected (flag) it will be performed a different action.

Possible flags options and a brief description of the actions:

CREATEDIRECTORY - Create a directory in an specific path in the FTPS server. DELETEDIRECTORY - Delete the directory and its content in the FTPS server. DELETEFILE - Delete a file in an specific path in the FTPS server. GETFILE - Get the content of a file in the FTPS server, a specific encoding can be set in the request and also split the file into parts for large file and process the file by lines. GETLISTFILES - Get the list of files and directories inside a specific path in the FTPS server. RENAMEFILE - Rename a file inside a path in the FTPS server. SAVEFILE - Upload a file inside the FTPS server, the content of the file is a string that can have a specific encondig, the enconding must be specified if it is not set, the default value of the encoding will be base64.

Any other flag will be consider as an invalid value and will return a message error.

As this library is used into a OIH based component it can be integrated into flows to perform different accions as required in a data transformation process. This flows definition are intended to be generated in the N3xGen Portal.

2. Library usage

The library can be installed from npm page with the next:

npm install ftps-cg-lib, npm i ftps-cg-lib or yarn install ftps-cg-lib

2.1. CREATEDIRECTORY

  • Arguments: Required: - host: It is the server where the connection will be established, can be an URL or IP. - port: This parameter is the port related to the server to stablish the connection. - username: The username that have grants to connect to the FTPS server. - password:This parameter contains the password related to have access to the FTPS server. - flag: The string that contains the option of the actinon to be executed, the next options are available: CREATEDIRECTORY, DELETEDIRECTORY, DELETEFILE, GETFILE, GETLISTFILES, RENAMEFILE, SAVEFILE. The string is not case sensitive. - secure: Is a boolean value that indicates if the connection should be secured or not. - path: The location of a file or directory where the management will be performed.
  • Description: This request will create a new directory inside the FTPS server according with the path, if the directory in the path doesn't exist it will be created. It is possible to create a complete structure of directory (in a single branch) in one request setting all the structure in the path. Once the request is performed, the answer will be a string in a JSON format with the result of the execution. .
  • Request example:
{
	"host":"18.119.108.41",
    "port":"21",
    "username":"ftpsuser",
    "password":"Cloudgen@123",
    "secure":true,
    "flag":"CREATEDIRECTORY",
    "path":"/files/newDir"
}

Resultant example:

"Directory /files/newDir was created successfully."

In case the directory already exists or the path does not exist the process will return this message:

"Error: Create directory operation failed."

2.2 DELETEDIRECTORY

  • Arguments: Required: - host: It is the server where the connection will be established, can be an URL or IP. - port: This parameter is the port related to the server to stablish the connection. - username: The username that have grants to connect to the FTPS server. - password:This parameter contains the password related to have access to the FTPS server. - flag: The string that contains the option of the actinon to be executed, the next options are available: CREATEDIRECTORY, DELETEDIRECTORY, DELETEFILE, GETFILE, GETLISTFILES, RENAMEFILE, SAVEFILE. The string is not case sensitive. - secure: Is a boolean value that indicates if the connection should be secured or not. - path: The location of the directory that will be deleted.

  • Description: This request will delete a directory with all its content (all the documents inside it) from the FTPS server. Once the request is performed, the answear will be a string in a JSON format with the result of the excecution.

  • Request example:

{
	"host":"18.119.108.41",
    "port":"21",
    "username":"ftpsuser",
    "password":"Cloudgen@123",
    "secure":true,
    "flag":"DELETEDIRECTORY",
    "path":"/files/newDir"
}

Resultant example:

"Directory /files/newDir was deleted successfully."

In case the directory does not exist the process will return this message:

"Error: Remove directory operation failed."

2.3. DELETEFILE

  • Arguments: Required: - host: It is the server where the connection will be established, can be an URL or IP. - port: This parameter is the port related to the server to stablish the connection. - username: The username that have grants to connect to the FTPS server. - password:This parameter contains the password related to have access to the FTPS server. - flag: The string that contains the option of the actinon to be executed, the next options are available: CREATEDIRECTORY, DELETEDIRECTORY, DELETEFILE, GETFILE, GETLISTFILES, RENAMEFILE, SAVEFILE. The string is not case sensitive. - secure: Is a boolean value that indicates if the connection should be secured or not. - path: The location of the file that will be deleted from the FTPS server. - file: The name of the file that will be deleted from the FTPS server.

  • Description: his request will delete a specific file according with the seletded path in the FTPS server. Once the request is performen, the answear will be a string in a JSON format with the result of the excecution.

  • Reques example:

{
	"host":"18.119.108.41",
    "port":"21",
    "username":"ftpsuser",
    "password":"Cloudgen@123",
    "secure":true,
    "flag":"DELETEFILE",
    "path":"/files/",
    "file":"regards.txt"
}

Resultant example:

"File regards.txt was deleted successfully."

In case the file does not exist the process will return this message:

"Error: Delete operation failed."

2.4. GETFILE

  • Arguments: Required: - host: It is the server where the connection will be established, can be an URL or IP. - port: This parameter is the port related to the server to stablish the connection. - username: The username that have grants to connect to the FTPS server. - password:This parameter contains the password related to have access to the FTPS server. - flag: The string that contains the option of the actinon to be executed, the next options are available: CREATEDIRECTORY, DELETEDIRECTORY, DELETEFILE, GETFILE, GETLISTFILES, RENAMEFILE, SAVEFILE. The string is not case sensitive. - secure: Is a boolean value that indicates if the connection should be secured or not. - file: The name of the file inside the FTPS to get its content. It will be required to set the full path with the file name in this parameter. If the optional encoding parameter is not set the content of the file will be in base64 encoding. Optionals: - encoding: The enconding to be used to get the content of a file, if this parameter is not set, the base64 encoding will be taken as default value. - splitFile: Flag to define if the file will be process by number of lines or not. - headers: Flag to define if the file that we are going to process by number of lines is going to have the first row as headers or not. - numberOfLines: The number of lines thtat we want to split the file.

  • Description: This request will get the content of a file in a string (with the configured or default encoding). Once the request is performed, the answer will be a string in a JSON format with the result of the execution.

  • Request example without setting the encoding (the default countent will be get in base64):

{
    "host": "3.137.209.24",
    "port": "21",
    "secure":true,
    "username": "cgftpsuser",
    "password": "cgftpsuser",
    "path": "/upload/test",
    "flag": "GETFILE",
    "file": "/upload/test/myCsvTest.csv",
    "encoding": "base64",
    "headers": true,
    "numberOfLines": 50,
    "splitFile": true"
}

Resultant example:

"77u/U09SVF9LRVksUEFZQ09ERSxEQVRFX0NMT0NLRURJTixUSU1FX0NMT0NLRURJTixEQVRFX0NMT0NLRURPVVQsVElNRUNMT0NLRUQsVE9UQUxNSUNMS1RJTUVfQU1ULFRPVEFMQU1ULEVNUF9GSVJTVE5BTUUsRU1QX01JRERMRU5BTUUsRU1QX0xBU1ROQU1FLFBBWVBFUkVORF9EQVRFLERMVFNWTkdfSU5ESUNBVE9SLFNUT1JFQ0xPU0VfVElNRSxFTVBMT1lFRV9TU04sU0VWRU5FTEVWRU5fTE9DQVRJT04sSU5DVVJSRUROT0RFX0xPQ0FUSU9OLENIUkdOVU1CRVJfTE9DQVRJT04sUEFZUFJPQ0VTU0NPREUNCjEwMDE2MDcsMzY1OTAsMDIvMjgvMjIsMDU6NDksMDIvMjgvMjIsMTQ6MzIsNTIzLDUyMyxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMDE2MDcsMzY1OTAsMzY1OTANCjEwMDE2MDcsMzY1OTAsMDIvMjcvMjIsMDY6MDgsMDIvMjcvMjIsMTQ6MDgsNDgwLDQ4MCxKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMDQzMjEsVFcsMTAwMTYwNywzNjU5MCwzNjU5MA0KMTAwMTYwNywzNjU5MCwwMS8wMy8yMDIyLDA5OjU0LDAxLzAzLzIwMjIsMTg6MDgsNDk0LDQ5NCxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMDE2MDcsMzY1OTAsMzY1OTANCjEwMDE2MDcsMzY1OTAsMDIvMDMvMjAyMiwwNTo1MSwwMi8wMy8yMDIyLDE0OjA3LDQ5Niw0OTYsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgNDMyMSxSUiwxMDAxNjA3LDM2NTkwLDM2NTkwDQoxMDAxNjA3LDM2NTkwLDAzLzAzLzIwMjIsMTE6NTQsMDMvMDMvMjAyMiwxNjoyMiwyNjgsMjY4LEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsUlIsMTAwMTYwNywzNjU5MCwzNjU5MA0KMTAwMjc0NSwzNjU3NSwwMi8yNS8yMiwwNzowMCwwMi8yNS8yMiwxNzowMCw2MDAsNjAwLEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwNDMyMSxSUiwxMDAyNzQ1LDM2NTc1LDM2NTc1DQoxMDAyNzQ1LDM2NTc1LDAyLzI3LzIyLDA3OjAzLDAyLzI3LzIyLDE3OjAwLDU5Nyw1OTcsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxWUCwxMDAyNzQ1LDM2NTc1LDM2NTc1DQoxMDAyNzQ1LDM2NTc1LDAxLzAzLzIwMjIsMDc6MDAsMDEvMDMvMjAyMiwwNzowMCw0ODAsNDgwLEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDQzMjEsVlAsMTAwMjc0NSwzNjU3NSwzNjU3NQ0KMTAwMjc0NSwzNjU3NSwwMi8wMy8yMDIyLDA3OjAwLDAyLzAzLzIwMjIsMDc6MDAsNDgwLDQ4MCxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMDI3NDUsMzY1NzUsMzY1NzUNCjEwMDMxMDAsMzY1MjIsMDIvMjUvMjIsMDc6MDAsMDIvMjUvMjIsMTQ6MDAsNDIwLDQyMCxKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMDQzMjEsUlIsMTAwMzEwMCwzNjUyMiwzNjUyMg0KMTAwMzEwMCwzNjUyMiwwMi8yNy8yMiwwOTowMCwwMi8yNy8yMiwxNjowMCw0MjAsNDIwLEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsUlIsMTAwMzEwMCwzNjUyMiwzNjUyMg0KMTAwMzEwMCwzNjUyMiwwMi8yOC8yMiwwNjowMCwwMi8yOC8yMiwxNDowMSw0ODEsNDgxLEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDQzMjEsUlIsMTAwMzEwMCwzNjUyMiwzNjUyMg0KMTAwMzEwMCwzNjUyMiwwMS8wMy8yMDIyLDA2OjAwLDAxLzAzLzIwMjIsMTQ6MDAsNDgwLDQ4MCxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMDMxMDAsMzY1MjIsMzY1MjINCjEwMDMxMDAsMzY1MjIsMDIvMDMvMjAyMiwwNjowMCwwMi8wMy8yMDIyLDEzOjUxLDQ3MSw0NzEsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDA0MzIxLFJSLDEwMDMxMDAsMzY1MjIsMzY1MjINCjEwMDMxMDAsMzY1MjIsMDMvMDMvMjAyMiwwNTowMCwwMy8wMy8yMDIyLDA1OjAxLDEsMSxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMDMxMDAsMzY1MjIsMzY1MjINCjEwMDM2ODYsMzY1MDQsMDIvMjcvMjIsMTU6MDcsMDIvMjcvMjIsMjI6NTksNDcyLDQ3MixKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCA0MzIxLFJSLDEwMDM2ODYsMzY1MDQsMzY1MDQNCjEwMDM2ODYsMzY1MDQsMDIvMjgvMjIsMTU6MDAsMDIvMjgvMjIsMDE6MDcsNjA3LDYwNyxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMDM2ODYsMzY1MDQsMzY1MDQNCjEwMDM2ODYsMzY1MDQsMDIvMDMvMjAyMiwxNTowNywwMi8wMy8yMDIyLDIzOjExLDQ4NCw0ODQsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDA0MzIxLFJSLDEwMDM2ODYsMzY1MDQsMzY1MDQNCjEwMDM2ODYsMzY1MDQsMDMvMDMvMjAyMiwxNToxMSwwMy8wMy8yMDIyLDIyOjIzLDQzMiw0MzIsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDAzNjg2LDM2NTA0LDM2NTA0DQoxMDA0Mjk2LDQwMTQzLDAyLzI1LzIyLDIyOjU2LDAyLzI1LzIyLDA2OjE1LDQzOSw0MzksSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgNDMyMSxSUiwxMDA0Mjk2LDQwMTQzLDQwMTQzDQoxMDA0Mjk2LDQwMTQzLDAyLzI2LzIyLDEzOjUwLDAyLzI2LzIyLDIyOjE3LDUwNyw1MDcsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDA0Mjk2LDQwMTQzLDQwMTQzDQoxMDA0Mjk2LDQwMTQzLDAyLzI4LzIyLDIyOjA3LDAyLzI4LzIyLDA2OjEzLDQ4Niw0ODYsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDA0MzIxLFJSLDEwMDQyOTYsNDAxNDMsNDAxNDMNCjEwMDQyOTYsNDAxNDMsMDEvMDMvMjAyMiwyMjowMCwwMS8wMy8yMDIyLDA2OjIxLDUwMSw1MDEsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDA0Mjk2LDQwMTQzLDQwMTQzDQoxMDA0Mjk2LDQwMTQzLDAyLzAzLzIwMjIsMjE6NTUsMDIvMDMvMjAyMiwwNjowOCw0OTMsNDkzLEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDQzMjEsUlIsMTAwNDI5Niw0MDE0Myw0MDE0Mw0KMTAwNDk0NywzNTA5NiwwMi8yNi8yMiwwOTo1NCwwMi8yNi8yMiwxMzo1NywyNDMsMjQzLEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsUlIsMTAwNDk0NywzNTA5NiwzNTA5Ng0KMTAwNDk0NywzNTA5NiwwMi8yNy8yMiwwNTo1MSwwMi8yNy8yMiwxMjowMCwzNjksMzY5LEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwNDMyMSxSUiwxMDA0OTQ3LDM1MDk2LDM1MDk2DQoxMDA0OTQ3LDM1MDk2LDAyLzAzLzIwMjIsMDU6NTIsMDIvMDMvMjAyMiwxMjowMCwzNjgsMzY4LEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsUlIsMTAwNDk0NywzNTA5NiwzNTA5Ng0KMTAwNDk0NywzNTA5NiwwMi8wMy8yMDIyLDE1OjU1LDAyLzAzLzIwMjIsMTk6MDAsMTg1LDE4NSxKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCA0MzIxLFJSLDEwMDQ5NDcsMzUwOTYsMzUwOTYNCjEwMDUzNDIsNDE5MjgsMDIvMjYvMjIsMDU6NTUsMDIvMjYvMjIsMTM6MjAsNDQ1LDQ0NSxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMDUzNDIsNDE5MjgsNDE5MjgNCjEwMDUzNDIsNDE5MjgsMDIvMjgvMjIsMDU6NDIsMDIvMjgvMjIsMTQ6MDIsNTAwLDUwMCxKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMDQzMjEsUlIsMTAwNTM0Miw0MTkyOCw0MTkyOA0KMTAwNTM0Miw0MTkyOCwwMS8wMy8yMDIyLDA1OjQwLDAxLzAzLzIwMjIsMTM6MjgsNDY4LDQ2OCxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMDUzNDIsNDE5MjgsNDE5MjgNCjEwMDUzNDIsNDE5MjgsMDIvMDMvMjAyMiwwNjowMSwwMi8wMy8yMDIyLDEzOjU4LDQ3Nyw0NzcsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgNDMyMSxUVywxMDA1MzQyLDQxOTI4LDQxOTI4DQoxMDA1NzcwLDQwODc5LDAxLzAzLzIwMjIsMDk6NTksMDEvMDMvMjAyMiwxNTowOSwzMTAsMzEwLEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsVFcsMTAwNTc3MCw0MDg3OSw0MDg3OQ0KMTAwNTc3MCw0MDg3OSwwMi8wMy8yMDIyLDA5OjU2LDAyLzAzLzIwMjIsMTE6MDMsNjcsNjcsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDA0MzIxLFRXLDEwMDU3NzAsNDA4NzksNDA4NzkNCjEwMDU3NzAsNDA4NzksMDMvMDMvMjAyMiwxMTowMiwwMy8wMy8yMDIyLDE5OjI0LDUwMiw1MDIsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDA1NzcwLDQwODc5LDQwODc5DQoxMDA2NzA3LDIwNTYwLDAyLzI2LzIyLDEwOjQ2LDAyLzI2LzIyLDE5OjAzLDQ5Nyw0OTcsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgNDMyMSxSUiwxMDA2NzA3LDIwNTYwLDIwNTYwDQoxMDA2NzA3LDIwNTYwLDAyLzI4LzIyLDA2OjU4LDAyLzI4LzIyLDE1OjA2LDQ4OCw0ODgsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDA2NzA3LDIwNTYwLDIwNTYwDQoxMDA2NzA3LDIwNTYwLDAxLzAzLzIwMjIsMDY6NTMsMDEvMDMvMjAyMiwxNTowMyw0OTAsNDkwLEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwNDMyMSxSUiwxMDA2NzA3LDIwNTYwLDIwNTYwDQoxMDA2NzA3LDIwNTYwLDAyLzAzLzIwMjIsMDY6NTMsMDIvMDMvMjAyMiwxNTowNCw0OTEsNDkxLEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsUlIsMTAwNjcwNywyMDU2MCwyMDU2MA0KMTAwNjcwNywyMDU2MCwwNC8wMy8yMDIyLDA2OjQzLDA0LzAzLzIwMjIsMDg6MjEsOTgsOTgsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgNDMyMSxSUiwxMDA2NzA3LDIwNTYwLDIwNTYwDQoxMDA2OTA5LDM2NjM0LDAyLzI2LzIyLDE0OjEyLDAyLzI2LzIyLDIyOjA1LDQ3Myw0NzMsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDA2OTA5LDM2NjM0LDM2NjM0DQoxMDA2OTA5LDM2NjM0LDAyLzI3LzIyLDE0OjA5LDAyLzI3LzIyLDIyOjQwLDUxMSw1MTEsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDA0MzIxLFJSLDEwMDY5MDksMzY2MzQsMzY2MzQNCjEwMDY5MDksMzY2MzQsMDIvMDMvMjAyMiwxNjoxNiwwMi8wMy8yMDIyLDIyOjE3LDM2MSwzNjEsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxWUCwxMDA2OTA5LDM2NjM0LDM2NjM0DQoxMDA4MjU2LDM2NTM1LDAzLzAzLzIwMjIsMDc6MDAsMDMvMDMvMjAyMiwwNzowMCw0ODAsNDgwLEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDQzMjEsREYsMTAwODI1NiwzNjUzNSwzNjUzNQ0KMTAwODI2Myw0MDIwMSwwMi8yNS8yMiwwNzowMCwwMi8yNS8yMiwwNzowMCw0ODAsNDgwLEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsREYsMTAwODI2Myw0MDIwMSw0MDIwMQ0KMTAwODI2Myw0MDIwMSwwMi8yOC8yMiwwNzowMCwwMi8yOC8yMiwwNzowMCw0ODAsNDgwLEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwNDMyMSxSUiwxMDA4MjYzLDQwMjAxLDQwMjAxDQoxMDA4NzE3LDM2NTM1LDAyLzI1LzIyLDA5OjU5LDAyLzI1LzIyLDE0OjE0LDI1NSwyNTUsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDA4NzE3LDM2NTM1LDM2NTM1DQoxMDA4NzE3LDM2NTM1LDAyLzI2LzIyLDA1OjQ4LDAyLzI2LzIyLDE0OjQyLDUzNCw1MzQsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgNDMyMSxSUiwxMDA4NzE3LDM2NTM1LDM2NTM1DQoxMDA4NzE3LDM2NTM1LDAyLzI3LzIyLDA1OjU3LDAyLzI3LzIyLDE0OjA0LDQ4Nyw0ODcsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDA4NzE3LDM2NTM1LDM2NTM1DQoxMDA4NzE3LDM2NTM1LDAyLzI4LzIyLDAzOjUzLDAyLzI4LzIyLDEyOjA1LDQ5Miw0OTIsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDA0MzIxLFJSLDEwMDg3MTcsMzY1MzUsMzY1MzU=",
        "77u/U09SVF9LRVksUEFZQ09ERSxEQVRFX0NMT0NLRURJTixUSU1FX0NMT0NLRURJTixEQVRFX0NMT0NLRURPVVQsVElNRUNMT0NLRUQsVE9UQUxNSUNMS1RJTUVfQU1ULFRPVEFMQU1ULEVNUF9GSVJTVE5BTUUsRU1QX01JRERMRU5BTUUsRU1QX0xBU1ROQU1FLFBBWVBFUkVORF9EQVRFLERMVFNWTkdfSU5ESUNBVE9SLFNUT1JFQ0xPU0VfVElNRSxFTVBMT1lFRV9TU04sU0VWRU5FTEVWRU5fTE9DQVRJT04sSU5DVVJSRUROT0RFX0xPQ0FUSU9OLENIUkdOVU1CRVJfTE9DQVRJT04sUEFZUFJPQ0VTU0NPREUNCjEwMDg3MTcsMzY1MzUsMDMvMDMvMjAyMiwwNzo1OCwwMy8wMy8yMDIyLDEyOjE4LDI2MCwyNjAsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDA4NzE3LDM2NTM1LDM2NTM1DQoxMDA4NzE3LDM2NTM1LDA0LzAzLzIwMjIsMDU6NTIsMDQvMDMvMjAyMiwwNzowMCw2OCw2OCxKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCA0MzIxLFJSLDEwMDg3MTcsMzY1MzUsMzY1MzUNCjEwMTA5NzMsMzY3NDQsMDIvMjUvMjIsMTQ6MjYsMDIvMjUvMjIsMjM6MDksNTIzLDUyMyxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMTA5NzMsMzY3NDQsMzY3NDQNCjEwMTA5NzMsMzY3NDQsMDIvMjYvMjIsMTQ6NTMsMDIvMjYvMjIsMjM6MDAsNDg3LDQ4NyxKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMDQzMjEsUlIsMTAxMDk3MywzNjc0NCwzNjc0NA0KMTAxMDk3MywzNjc0NCwwMS8wMy8yMDIyLDE0OjUzLDAxLzAzLzIwMjIsMjM6MDAsNDg3LDQ4NyxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMTA5NzMsMzY3NDQsMzY3NDQNCjEwMTA5NzMsMzY3NDQsMDIvMDMvMjAyMiwxNDo1NCwwMi8wMy8yMDIyLDIzOjExLDQ5Nyw0OTcsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgNDMyMSxSUiwxMDEwOTczLDM2NzQ0LDM2NzQ0DQoxMDExMDA1LDM2NzMyLDAyLzI2LzIyLDA3OjEwLDAyLzI2LzIyLDE1OjAzLDQ3Myw0NzMsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDExMDA1LDM2NzMyLDM2NzMyDQoxMDExMDA1LDM2NzMyLDAyLzI3LzIyLDA2OjE0LDAyLzI3LzIyLDE1OjA1LDUzMSw1MzEsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDA0MzIxLFJSLDEwMTEwMDUsMzY3MzIsMzY3MzINCjEwMTEwMDUsMzY3MzIsMDMvMDMvMjAyMiwwNzowMywwMy8wMy8yMDIyLDE1OjA3LDQ4NCw0ODQsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxWUCwxMDExMDA1LDM2NzMyLDM2NzMyDQoxMDExNDg5LDQwNTYwLDAyLzI1LzIyLDA3OjAwLDAyLzI1LzIyLDA3OjAwLDI0MCwyNDAsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgNDMyMSxSUiwxMDExNDg5LDQwNTYwLDQwNTYwDQoxMDExNDg5LDQwNTYwLDAyLzI3LzIyLDE0OjAwLDAyLzI3LzIyLDIzOjAwLDU0MCw1NDAsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDExNDg5LDQwNTYwLDQwNTYwDQoxMDExNDg5LDQwNTYwLDAyLzI4LzIyLDE0OjAwLDAyLzI4LzIyLDIzOjAwLDU0MCw1NDAsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDA0MzIxLFJSLDEwMTE0ODksNDA1NjAsNDA1NjANCjEwMTE0ODksNDA1NjAsMDEvMDMvMjAyMiwxNDowMCwwMS8wMy8yMDIyLDIzOjAwLDU0MCw1NDAsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDExNDg5LDQwNTYwLDQwNTYwDQoxMDExNDg5LDQwNTYwLDAyLzAzLzIwMjIsMTQ6MDAsMDIvMDMvMjAyMiwyMzowMCw1NDAsNTQwLEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDQzMjEsUlIsMTAxMTQ4OSw0MDU2MCw0MDU2MA0KMTAxMTgzNCwzNTQwMCwwMi8yNi8yMiwwNjowMywwMi8yNi8yMiwwNjowNSwyLDIsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDExODM0LDM1NDAwLDM1NDAwDQoxMDExODM0LDM1NDAwLDAyLzI2LzIyLDA2OjA2LDAyLzI2LzIyLDE0OjEwLDQ4NCw0ODQsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDA0MzIxLFJSLDEwMTE4MzQsMzU0MDAsMzU0MDANCjEwMTE4MzQsMzU0MDAsMDEvMDMvMjAyMiwwNjowOCwwMS8wMy8yMDIyLDE0OjE2LDQ4OCw0ODgsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDExODM0LDM1NDAwLDM1NDAwDQoxMDExODM0LDM1NDAwLDAyLzAzLzIwMjIsMDY6MjIsMDIvMDMvMjAyMiwxNDowMCw0NTgsNDU4LEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDQzMjEsUlIsMTAxMTgzNCwzNTQwMCwzNTQwMA0KMTAxMTgzNCwzNTQwMCwwMy8wMy8yMDIyLDA2OjA0LDAzLzAzLzIwMjIsMTQ6MDcsNDgzLDQ4MyxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMTE4MzQsMzU0MDAsMzU0MDANCjEwMTE4MzQsMzU0MDAsMDQvMDMvMjAyMiwwNjowNCwwNC8wMy8yMDIyLDA3OjE5LDc1LDc1LEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwNDMyMSxSUiwxMDExODM0LDM1NDAwLDM1NDAwDQoxMDEyMzYyLDM2NTEwLDAyLzI1LzIyLDIzOjUzLDAyLzI1LzIyLDA1OjU3LDM2NCwzNjQsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDEyMzYyLDM2NTEwLDM2NTEwDQoxMDEyMzYyLDM2NTEwLDAyLzI2LzIyLDIzOjUwLDAyLzI2LzIyLDA2OjA1LDM3NSwzNzUsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgNDMyMSxSUiwxMDEyMzYyLDM2NTEwLDM2NTEwDQoxMDEyMzYyLDM2NTEwLDAyLzI3LzIyLDIzOjU4LDAyLzI3LzIyLDA1OjUwLDM1MiwzNTIsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDEyMzYyLDM2NTEwLDM2NTEwDQoxMDEyMzYyLDM2NTEwLDAyLzI4LzIyLDIzOjU2LDAyLzI4LzIyLDA1OjU4LDM2MiwzNjIsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDA0MzIxLFJSLDEwMTIzNjIsMzY1MTAsMzY1MTANCjEwMTIzNjIsMzY1MTAsMDMvMDMvMjAyMiwyMzo0NiwwMy8wMy8yMDIyLDA1OjU4LDM3MiwzNzIsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDEyMzYyLDM2NTEwLDM2NTEwDQoxMDEyNjIyLDI1NjA4LDAyLzI3LzIyLDE2OjAxLDAyLzI3LzIyLDIyOjAxLDM2MCwzNjAsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgNDMyMSxSUiwxMDEyNjIyLDI1NjA4LDI1NjA4DQoxMDEyNjIyLDI1NjA4LDAyLzI4LzIyLDE1OjQ3LDAyLzI4LzIyLDIyOjExLDM4NCwzODQsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDEyNjIyLDI1NjA4LDI1NjA4DQoxMDEyNjIyLDI1NjA4LDAxLzAzLzIwMjIsMTU6MzgsMDEvMDMvMjAyMiwyMjoxNSwzOTcsMzk3LEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwNDMyMSxSUiwxMDEyNjIyLDI1NjA4LDI1NjA4DQoxMDEyNjIyLDI1NjA4LDAyLzAzLzIwMjIsMTU6MzYsMDIvMDMvMjAyMiwyMjozNCw0MTgsNDE4LEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsUlIsMTAxMjYyMiwyNTYwOCwyNTYwOA0KMTAxMjYyMiwyNTYwOCwwMy8wMy8yMDIyLDA4OjM3LDAzLzAzLzIwMjIsMTI6NTEsMjU0LDI1NCxKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCA0MzIxLFJSLDEwMTI2MjIsMjU2MDgsMjU2MDgNCjEwMTI2MjIsMjU2MDgsMDMvMDMvMjAyMiwxNTozOCwwMy8wMy8yMDIyLDIyOjIxLDQwMyw0MDMsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDEyNjIyLDI1NjA4LDI1NjA4DQoxMDE0MDE5LDIxODgyLDAyLzI1LzIyLDIyOjA2LDAyLzI1LzIyLDA1OjA2LDQyMCw0MjAsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDA0MzIxLFJSLDEwMTQwMTksMjE4ODIsMjE4ODINCjEwMTQwMTksMjE4ODIsMDIvMjYvMjIsMjI6MTEsMDIvMjYvMjIsMDY6MjQsNDkzLDQ5MyxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMTQwMTksMjE4ODIsMjE4ODINCjEwMTQwMTksMjE4ODIsMDEvMDMvMjAyMiwxMzo1MywwMS8wMy8yMDIyLDIyOjIyLDUwOSw1MDksSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgNDMyMSxSUiwxMDE0MDE5LDIxODgyLDIxODgyDQoxMDE0MDE5LDIxODgyLDAyLzAzLzIwMjIsMTM6NTMsMDIvMDMvMjAyMiwyMjoxNCw1MDEsNTAxLEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsUlIsMTAxNDAxOSwyMTg4MiwyMTg4Mg0KMTAxNDAxOSwyMTg4MiwwMy8wMy8yMDIyLDEzOjM4LDAzLzAzLzIwMjIsMjI6MTUsNTE3LDUxNyxKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMDQzMjEsUlIsMTAxNDAxOSwyMTg4MiwyMTg4Mg0KMTAxNDQwMSwzNjUxMCwwMi8yNS8yMiwwODoxOCwwMi8yNS8yMiwxMToxNiwxNzgsMTc4LEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsUlIsMTAxNDQwMSwzNjUxMCwzNjUxMA0KMTAxNDQwMSwzNjUxMCwwMi8yNS8yMiwxMToxNiwwMi8yNS8yMiwxNDo1MywyMTcsMjE3LEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDQzMjEsUlIsMTAxNDQwMSwzNjUxMCwzNjUxMA0KMTAxNDQwMSwzNjUxMCwwMi8yNy8yMiwwODo0NiwwMi8yNy8yMiwxMTozMywxNjcsMTY3LEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsUlIsMTAxNDQwMSwzNjUxMCwzNjUxMA0KMTAxNDQwMSwzNjUxMCwwMS8wMy8yMDIyLDA4OjE4LDAxLzAzLzIwMjIsMTU6MDEsNDAzLDQwMyxKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMDQzMjEsUlIsMTAxNDQwMSwzNjUxMCwzNjUxMA0KMTAxNDQwMSwzNjUxMCwwMi8wMy8yMDIyLDA3OjE4LDAyLzAzLzIwMjIsMTU6MDEsNDYzLDQ2MyxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMTQ0MDEsMzY1MTAsMzY1MTANCjEwMTQ2MjQsNDAyMzksMDIvMjYvMjIsMTM6NTMsMDIvMjYvMjIsMjI6MTYsNTAzLDUwMyxKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCA0MzIxLFJSLDEwMTQ2MjQsNDAyMzksNDAyMzkNCjEwMTQ2MjQsNDAyMzksMDIvMjcvMjIsMTQ6MDQsMDIvMjcvMjIsMjI6MTQsNDkwLDQ5MCxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMTQ2MjQsNDAyMzksNDAyMzkNCjEwMTQ2MjQsNDAyMzksMDMvMDMvMjAyMiwxMzo1OSwwMy8wMy8yMDIyLDIyOjA5LDQ5MCw0OTAsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDA0MzIxLFJSLDEwMTQ2MjQsNDAyMzksNDAyMzkNCjEwMTYxNzgsMjU1OTYsMDIvMjcvMjIsMjI6MDAsMDIvMjcvMjIsMDU6MDAsNDIwLDQyMCxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMTYxNzgsMjU1OTYsMjU1OTYNCjEwMTYxNzgsMjU1OTYsMDIvMDMvMjAyMiwxNzowMCwwMi8wMy8yMDIyLDIyOjAwLDMwMCwzMDAsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgNDMyMSxSUiwxMDE2MTc4LDI1NTk2LDI1NTk2DQoxMDE2MjI5LDE5MjM1LDAyLzI2LzIyLDA3OjA1LDAyLzI2LzIyLDEyOjM3LDMzMiwzMzIsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDE2MjI5LDE5MjM1LDE5MjM1DQoxMDE2MjI5LDE5MjM1LDAyLzI3LzIyLDExOjQ3LDAyLzI3LzIyLDE3OjA3LDMyMCwzMjAsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDA0MzIxLFJSLDEwMTYyMjksMTkyMzUsMTkyMzUNCjEwMTYyMjksMTkyMzUsMDIvMjgvMjIsMTE6NTksMDIvMjgvMjIsMTc6MDYsMzA3LDMwNyxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMTYyMjksMTkyMzUsMTkyMzUNCjEwMTYyMjksMTkyMzUsMDEvMDMvMjAyMiwwNzowMywwMS8wMy8yMDIyLDEyOjMwLDMyNywzMjcsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgNDMyMSxSUiwxMDE2MjI5LDE5MjM1LDE5MjM1",
        "77u/U09SVF9LRVksUEFZQ09ERSxEQVRFX0NMT0NLRURJTixUSU1FX0NMT0NLRURJTixEQVRFX0NMT0NLRURPVVQsVElNRUNMT0NLRUQsVE9UQUxNSUNMS1RJTUVfQU1ULFRPVEFMQU1ULEVNUF9GSVJTVE5BTUUsRU1QX01JRERMRU5BTUUsRU1QX0xBU1ROQU1FLFBBWVBFUkVORF9EQVRFLERMVFNWTkdfSU5ESUNBVE9SLFNUT1JFQ0xPU0VfVElNRSxFTVBMT1lFRV9TU04sU0VWRU5FTEVWRU5fTE9DQVRJT04sSU5DVVJSRUROT0RFX0xPQ0FUSU9OLENIUkdOVU1CRVJfTE9DQVRJT04sUEFZUFJPQ0VTU0NPREUNCjEwMTYyMjksMTkyMzUsMDIvMDMvMjAyMiwwNzozNiwwMi8wMy8yMDIyLDA3OjM2LDE0NDAsMTQ0MCxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMTYyMjksMTkyMzUsMTkyMzUNCjEwMTY3OTIsMjA5MjUsMDIvMjYvMjIsMDY6NDYsMDIvMjYvMjIsMTU6MjAsNTE0LDUxNCxKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMDQzMjEsUlIsMTAxNjc5MiwyMDkyNSwyMDkyNQ0KMTAxNjc5MiwyMDkyNSwwMi8yOC8yMiwwNjo0NywwMi8yOC8yMiwxNTowNSw0OTgsNDk4LEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsUlIsMTAxNjc5MiwyMDkyNSwyMDkyNQ0KMTAxNjc5MiwyMDkyNSwwMS8wMy8yMDIyLDA2OjUyLDAxLzAzLzIwMjIsMTU6MTQsNTAyLDUwMixKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCA0MzIxLFJSLDEwMTY3OTIsMjA5MjUsMjA5MjUNCjEwMTY3OTIsMjA5MjUsMDIvMDMvMjAyMiwwNjo0OSwwMi8wMy8yMDIyLDE1OjE0LDUwNSw1MDUsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDE2NzkyLDIwOTI1LDIwOTI1DQoxMDE2NzkyLDIwOTI1LDA0LzAzLzIwMjIsMDY6NTQsMDQvMDMvMjAyMiwxNDoyOSw0NTUsNDU1LEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwNDMyMSxSUiwxMDE2NzkyLDIwOTI1LDIwOTI1DQoxMDE3MDkwLDM1OTIyLDAyLzI2LzIyLDEyOjAyLDAyLzI2LzIyLDE3OjAwLDI5OCwyOTgsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDE3MDkwLDM1OTIyLDM1OTIyDQoxMDE3MDkwLDM1OTIyLDAyLzI3LzIyLDEyOjM1LDAyLzI3LzIyLDE3OjA0LDI2OSwyNjksSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgNDMyMSxSUiwxMDE3MDkwLDM1OTIyLDM1OTIyDQoxMDE3MDkwLDM1OTIyLDAyLzI4LzIyLDIzOjAzLDAyLzI4LzIyLDA3OjAwLDQ3Nyw0NzcsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDE3MDkwLDM1OTIyLDM1OTIyDQoxMDE3MDkwLDM1OTIyLDAyLzAzLzIwMjIsMTE6MDksMDIvMDMvMjAyMiwxNzowMCwzNTEsMzUxLEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwNDMyMSxSUiwxMDE3MDkwLDM1OTIyLDM1OTIyDQoxMDE3MDkwLDM1OTIyLDAzLzAzLzIwMjIsMTY6MDAsMDMvMDMvMjAyMiwyMzowMCw0MjAsNDIwLEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsUlIsMTAxNzA5MCwzNTkyMiwzNTkyMg0KMTAxNzA5MCwzNTkyMiwwNC8wMy8yMDIyLDAzOjMwLDA0LzAzLzIwMjIsMDU6MDAsOTAsOTAsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgNDMyMSxSUiwxMDE3MDkwLDM1OTIyLDM1OTIyDQoxMDE3OTcwLDM1NTU5LDAyLzI1LzIyLDA3OjAwLDAyLzI1LzIyLDE2OjAwLDU0MCw1NDAsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDE3OTcwLDM1NTU5LDM1NTU5DQoxMDE3OTcwLDM1NTU5LDAyLzI2LzIyLDA3OjAwLDAyLzI2LzIyLDE1OjAwLDQ4MCw0ODAsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDA0MzIxLFJSLDEwMTc5NzAsMzU1NTksMzU1NTkNCjEwMTc5NzAsMzU1NTksMDIvMjcvMjIsMDc6MDAsMDIvMjcvMjIsMjM6MDAsOTYwLDk2MCxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMTc5NzAsMzU1NTksMzU1NTkNCjEwMTc5NzAsMzU1NTksMDEvMDMvMjAyMiwwNzowMCwwMS8wMy8yMDIyLDE1OjAwLDQ4MCw0ODAsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgNDMyMSxSUiwxMDE3OTcwLDM1NTU5LDM1NTU5DQoxMDE3OTcwLDM1NTU5LDAzLzAzLzIwMjIsMDc6MDAsMDMvMDMvMjAyMiwxNTowMCw0ODAsNDgwLEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsUlIsMTAxNzk3MCwzNTU1OSwzNTU1OQ0KMTAxNzk5NiwzNjgxOSwwMi8yNS8yMiwxMDo1NiwwMi8yNS8yMiwxOTowMSw0ODUsNDg1LEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwNDMyMSxSUiwxMDE3OTk2LDM2ODE5LDM2ODE5DQoxMDE3OTk2LDM2ODE5LDAyLzI2LzIyLDA3OjAyLDAyLzI2LzIyLDE1OjA2LDQ4NCw0ODQsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDE3OTk2LDM2ODE5LDM2ODE5DQoxMDE3OTk2LDM2ODE5LDAyLzI3LzIyLDA3OjUyLDAyLzI3LzIyLDE1OjAxLDQyOSw0MjksSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgNDMyMSxSUiwxMDE3OTk2LDM2ODE5LDM2ODE5DQoxMDE3OTk2LDM2ODE5LDAyLzAzLzIwMjIsMjI6NDksMDIvMDMvMjAyMiwwNjoxNCw0NDUsNDQ1LEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsVEQsMTAxNzk5NiwzNjgxOSwzNjgxOQ0KMTAxNzk5NiwzNjgxOSwwMy8wMy8yMDIyLDIyOjAwLDAzLzAzLzIwMjIsMDY6MDAsNDgwLDQ4MCxKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMDQzMjEsUlIsMTAxNzk5NiwzNjgxOSwzNjgxOQ0KMTAxNzk5OSwzNjg0MCwwMi8yNS8yMiwwOTo1OCwwMi8yNS8yMiwxNzo1NCw0NzYsNDc2LEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsUlIsMTAxNzk5OSwzNjg0MCwzNjg0MA0KMTAxNzk5OSwzNjg0MCwwMi8yNi8yMiwwOTo1OSwwMi8yNi8yMiwxNzo1Nyw0NzgsNDc4LEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDQzMjEsUlIsMTAxNzk5OSwzNjg0MCwzNjg0MA0KMTAxNzk5OSwzNjg0MCwwMi8yOC8yMiwwODowMCwwMi8yOC8yMiwxNjoxMyw0OTMsNDkzLEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsUlIsMTAxNzk5OSwzNjg0MCwzNjg0MA0KMTAxNzk5OSwzNjg0MSwwMi8wMy8yMDIyLDE3OjM2LDAyLzAzLzIwMjIsMjI6MzUsMjk5LDI5OSxKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMDQzMjEsUlIsMTAxNzk5OSwzNjg0MSwzNjg0MQ0KMTAxNzk5OSwzNjg0MCwwMy8wMy8yMDIyLDEwOjAwLDAzLzAzLzIwMjIsMTg6MDIsNDgyLDQ4MixKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMTc5OTksMzY4NDAsMzY4NDANCjEwMTgwMjIsMzY4NDEsMDIvMjUvMjIsMjM6MDEsMDIvMjUvMjIsMDc6MDQsNDgzLDQ4MyxKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCA0MzIxLFJSLDEwMTgwMjIsMzY4NDEsMzY4NDENCjEwMTgwMjIsMzY4NDEsMDIvMjYvMjIsMjI6NTcsMDIvMjYvMjIsMDc6MTcsNTAwLDUwMCxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMTgwMjIsMzY4NDEsMzY4NDENCjEwMTgwMjIsMzY4NDEsMDIvMjcvMjIsMjM6MDMsMDIvMjcvMjIsMDc6MDAsNDc3LDQ3NyxKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMDQzMjEsUlIsMTAxODAyMiwzNjg0MSwzNjg0MQ0KMTAxODAyMiwzNjg0MSwwMi8wMy8yMDIyLDAyOjU5LDAyLzAzLzIwMjIsMTA6MzUsNDU2LDQ1NixKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMTgwMjIsMzY4NDEsMzY4NDENCjEwMTgwMjIsMzY4NDEsMDIvMDMvMjAyMiwyMzowMiwwMi8wMy8yMDIyLDA3OjA5LDQ4Nyw0ODcsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgNDMyMSxWUCwxMDE4MDIyLDM2ODQxLDM2ODQxDQoxMDE4MDU3LDM2ODU1LDAyLzI3LzIyLDA3OjAwLDAyLzI3LzIyLDA3OjAwLDQ4MCw0ODAsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxWUCwxMDE4MDU3LDM2ODU1LDM2ODU1DQoxMDE4MDU3LDM2ODU1LDAyLzI4LzIyLDA3OjAwLDAyLzI4LzIyLDA3OjAwLDQ4MCw0ODAsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDA0MzIxLFJSLDEwMTgwNTcsMzY4NTUsMzY4NTUNCjEwMTgwNTcsMzY4NTUsMDEvMDMvMjAyMiwyMjowMCwwMS8wMy8yMDIyLDA2OjAwLDQ4MCw0ODAsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDE4MDU3LDM2ODU1LDM2ODU1DQoxMDE4MDU3LDM2ODU1LDAyLzAzLzIwMjIsMjI6MTcsMDIvMDMvMjAyMiwwNjoxNSw0NzgsNDc4LEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDQzMjEsUlIsMTAxODA1NywzNjg1NSwzNjg1NQ0KMTAxODA1NywzNjg1NSwwMy8wMy8yMDIyLDIyOjE2LDAzLzAzLzIwMjIsMDY6MTQsNDc4LDQ3OCxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMTgwNTcsMzY4NTUsMzY4NTUNCjEwMTgxMzUsMzY4NTYsMDIvMjUvMjIsMTc6MTIsMDIvMjUvMjIsMDA6NDYsNDU0LDQ1NCxKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMDQzMjEsUlIsMTAxODEzNSwzNjg1NiwzNjg1Ng0KMTAxODEzNSwzNjg1NiwwMi8yNi8yMiwxNjoxNywwMi8yNi8yMiwwMDoxMCw0NzMsNDczLEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsUlIsMTAxODEzNSwzNjg1NiwzNjg1Ng0KMTAxODEzNSwzNjg1NiwwMi8yNy8yMiwxNDo1MiwwMi8yNy8yMiwwMDowNSw1NTMsNTUzLEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDQzMjEsUlIsMTAxODEzNSwzNjg1NiwzNjg1Ng0KMTAxODEzNSwzNjg1NiwwMi8wMy8yMDIyLDE3OjQwLDAyLzAzLzIwMjIsMDA6MTEsMzkxLDM5MSxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMTgxMzUsMzY4NTYsMzY4NTYNCjEwMTgxMzUsMzY4NTYsMDMvMDMvMjAyMiwxNjoyOCwwMy8wMy8yMDIyLDAwOjEzLDQ2NSw0NjUsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDA0MzIxLFJSLDEwMTgxMzUsMzY4NTYsMzY4NTYNCjEwMTgxMzgsMzY4MzIsMDIvMjgvMjIsMDU6NTQsMDIvMjgvMjIsMTQ6MDUsNDkxLDQ5MSxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMTgxMzgsMzY4MzIsMzY4MzINCjEwMTgxMzgsMzY4MzIsMDEvMDMvMjAyMiwwNTo1NywwMS8wMy8yMDIyLDE0OjA0LDQ4Nyw0ODcsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgNDMyMSxSUiwxMDE4MTM4LDM2ODMyLDM2ODMyDQoxMDE4MTM4LDM2ODMyLDAyLzAzLzIwMjIsMTA6MDIsMDIvMDMvMjAyMiwxNDoxMSwyNDksMjQ5LEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsUlIsMTAxODEzOCwzNjgzMiwzNjgzMg0KMTAxODEzOCwzNjgzMiwwMy8wMy8yMDIyLDA1OjU3LDAzLzAzLzIwMjIsMTQ6MDIsNDg1LDQ4NSxKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMDQzMjEsUlIsMTAxODEzOCwzNjgzMiwzNjgzMg0KMTAxODQwMiw0MDc3MiwwMi8yNi8yMiwyMzowMSwwMi8yNi8yMiwwNzoyOCw1MDcsNTA3LEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsUlIsMTAxODQwMiw0MDc3Miw0MDc3Mg0KMTAxODQwMiw0MDc3MiwwMi8yOC8yMiwxMDoyMCwwMi8yOC8yMiwxODoxMCw0NzAsNDcwLEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDQzMjEsUlIsMTAxODQwMiw0MDc3Miw0MDc3Mg0KMTAxODQwMiw0MDc3MiwwMS8wMy8yMDIyLDE1OjU0LDAxLzAzLzIwMjIsMDA6MzIsNTE4LDUxOCxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMTg0MDIsNDA3NzIsNDA3NzINCjEwMTg0MDIsNDA3NzIsMDIvMDMvMjAyMiwxNTowMCwwMi8wMy8yMDIyLDIzOjI1LDUwNSw1MDUsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDA0MzIxLFJSLDEwMTg0MDIsNDA3NzIsNDA3NzI=",
        "77u/U09SVF9LRVksUEFZQ09ERSxEQVRFX0NMT0NLRURJTixUSU1FX0NMT0NLRURJTixEQVRFX0NMT0NLRURPVVQsVElNRUNMT0NLRUQsVE9UQUxNSUNMS1RJTUVfQU1ULFRPVEFMQU1ULEVNUF9GSVJTVE5BTUUsRU1QX01JRERMRU5BTUUsRU1QX0xBU1ROQU1FLFBBWVBFUkVORF9EQVRFLERMVFNWTkdfSU5ESUNBVE9SLFNUT1JFQ0xPU0VfVElNRSxFTVBMT1lFRV9TU04sU0VWRU5FTEVWRU5fTE9DQVRJT04sSU5DVVJSRUROT0RFX0xPQ0FUSU9OLENIUkdOVU1CRVJfTE9DQVRJT04sUEFZUFJPQ0VTU0NPREUNCjEwMTg0MDIsNDA3NzIsMDMvMDMvMjAyMiwxNTo1MSwwMy8wMy8yMDIyLDIzOjI0LDQ1Myw0NTMsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDE4NDAyLDQwNzcyLDQwNzcyDQoxMDE4NDE0LDM1OTI5LDAyLzI1LzIyLDA4OjA5LDAyLzI1LzIyLDE0OjQzLDM5NCwzOTQsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgNDMyMSxSUiwxMDE4NDE0LDM1OTI5LDM1OTI5DQoxMDE4NDE0LDM1OTI5LDAyLzI4LzIyLDA3OjA2LDAyLzI4LzIyLDE1OjI2LDUwMCw1MDAsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDE4NDE0LDM1OTI5LDM1OTI5DQoxMDE4NDE0LDM1OTI5LDAxLzAzLzIwMjIsMDc6MTEsMDEvMDMvMjAyMiwxMzoxOSwzNjgsMzY4LEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwNDMyMSxSUiwxMDE4NDE0LDM1OTI5LDM1OTI5DQoxMDE4NDE0LDM1OTI5LDAyLzAzLzIwMjIsMDc6MDcsMDIvMDMvMjAyMiwxNTowNyw0ODAsNDgwLEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsUlIsMTAxODQxNCwzNTkyOSwzNTkyOQ0KMTAxODQxNCwzNTkyOSwwMy8wMy8yMDIyLDA3OjA0LDAzLzAzLzIwMjIsMTQ6MDUsNDIxLDQyMSxKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCA0MzIxLFJSLDEwMTg0MTQsMzU5MjksMzU5MjkNCjEwMjAyNDgsNDA1NTksMDIvMjUvMjIsMDk6MDYsMDIvMjUvMjIsMTE6MTcsMTMxLDEzMSxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMjAyNDgsNDA1NTksNDA1NTkNCjEwMjAyNDgsNDA1NTksMDIvMjYvMjIsMDU6MDYsMDIvMjYvMjIsMTE6NTIsNDA2LDQwNixKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMDQzMjEsUlIsMTAyMDI0OCw0MDU1OSw0MDU1OQ0KMTAyMDI0OCw0MDU1OSwwMi8yNy8yMiwwNToyMiwwMi8yNy8yMiwxMjo1MCw0NDgsNDQ4LEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsUlIsMTAyMDI0OCw0MDU1OSw0MDU1OQ0KMTAyMDI0OCw0MDU1OSwwMi8yOC8yMiwwNTo0MywwMi8yOC8yMiwxMTowMiwzMTksMzE5LEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDQzMjEsUlIsMTAyMDI0OCw0MDU1OSw0MDU1OQ0KMTAyMDI0OCw0MDU1OSwwNC8wMy8yMDIyLDAzOjI4LDA0LzAzLzIwMjIsMDY6NTksMjExLDIxMSxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMjAyNDgsNDA1NTksNDA1NTkNCjEwMjA0ODYsMzk3MjEsMDIvMjUvMjIsMTQ6NTAsMDIvMjUvMjIsMjE6NTQsNDI0LDQyNCxKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMDQzMjEsUlIsMTAyMDQ4NiwzOTcyMSwzOTcyMQ0KMTAyMDQ4NiwzOTcyMSwwMi8yNy8yMiwxNDowMCwwMi8yNy8yMiwxOTowMCwzMDAsMzAwLEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsUlIsMTAyMDQ4NiwzOTcyMSwzOTcyMQ0KMTAyMDQ4NiwzOTcyMSwwMi8yOC8yMiwxNDoxNCwwMi8yOC8yMiwyMjowMCw0NjYsNDY2LEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDQzMjEsUlIsMTAyMDQ4NiwzOTcyMSwzOTcyMQ0KMTAyMTA2MywzNTU1MywwMi8yNS8yMiwwNzoxMiwwMi8yNS8yMiwxMTozMiwyNjAsMjYwLEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsUlIsMTAyMTA2MywzNTU1MywzNTU1Mw0KMTAyMTA2MywzNTU1MywwMi8yOC8yMiwwNjowMSwwMi8yOC8yMiwxNDowNCw0ODMsNDgzLEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwNDMyMSxSUiwxMDIxMDYzLDM1NTUzLDM1NTUzDQoxMDIxMDYzLDM1NTUzLDAxLzAzLzIwMjIsMDY6MDcsMDEvMDMvMjAyMiwxMzoyMiw0MzUsNDM1LEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsUlIsMTAyMTA2MywzNTU1MywzNTU1Mw0KMTAyMTA2MywzNTU1MywwMi8wMy8yMDIyLDA2OjAyLDAyLzAzLzIwMjIsMTQ6MDUsNDgzLDQ4MyxKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCA0MzIxLFJSLDEwMjEwNjMsMzU1NTMsMzU1NTMNCjEwMjEwNjMsMzU1NTMsMDQvMDMvMjAyMiwwNjozMiwwNC8wMy8yMDIyLDEwOjUzLDI2MSwyNjEsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDIxMDYzLDM1NTUzLDM1NTUzDQoxMDIxMjkwLDQwMzUzLDAyLzI2LzIyLDAzOjEyLDAyLzI2LzIyLDExOjA3LDQ3NSw0NzUsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDA0MzIxLFJSLDEwMjEyOTAsNDAzNTMsNDAzNTMNCjEwMjEyOTAsNDAzNTMsMDIvMjcvMjIsMDU6MTgsMDIvMjcvMjIsMTQ6MTEsNTMzLDUzMyxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMjEyOTAsNDAzNTMsNDAzNTMNCjEwMjEyOTAsNDAzNTMsMDIvMjgvMjIsMTk6MDQsMDIvMjgvMjIsMjM6MDksMjQ1LDI0NSxKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCA0MzIxLFJSLDEwMjEyOTAsNDAzNTMsNDAzNTMNCjEwMjI4NTIsMzg5OTIsMDIvMjYvMjIsMDY6MTgsMDIvMjYvMjIsMTM6NTYsNDU4LDQ1OCxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMjI4NTIsMzg5OTIsMzg5OTINCjEwMjI4NTIsMzg5OTIsMDIvMjcvMjIsMDY6MjEsMDIvMjcvMjIsMTQ6MTMsNDcyLDQ3MixKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMDQzMjEsUlIsMTAyMjg1MiwzODk5MiwzODk5Mg0KMTAyMjg1MiwzODk5MiwwMS8wMy8yMDIyLDA2OjExLDAxLzAzLzIwMjIsMTM6NDgsNDU3LDQ1NyxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMjI4NTIsMzg5OTIsMzg5OTINCjEwMjI4NTIsMzg5OTIsMDIvMDMvMjAyMiwxNDoxMCwwMi8wMy8yMDIyLDAyOjI1LDczNSw3MzUsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgNDMyMSxSUiwxMDIyODUyLDM4OTkyLDM4OTkyDQoxMDIyODUyLDM4OTkyLDAzLzAzLzIwMjIsMTM6NTcsMDMvMDMvMjAyMiwyMjozNyw1MjAsNTIwLEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsUlIsMTAyMjg1MiwzODk5MiwzODk5Mg0KMTAyMjg2OSwzMjkyNCwwMi8yNS8yMiwxNDowMiwwMi8yNS8yMiwyMzo1Miw1OTAsNTkwLEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwNDMyMSxSUiwxMDIyODY5LDMyOTI0LDMyOTI0DQoxMDIyODY5LDMyOTI0LDAyLzI3LzIyLDA2OjU4LDAyLzI3LzIyLDE2OjI3LDU2OSw1NjksSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDIyODY5LDMyOTI0LDMyOTI0DQoxMDIyODY5LDMyOTI0LDAyLzI4LzIyLDE0OjA3LDAyLzI4LzIyLDE0OjEwLDMsMyxKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCA0MzIxLFJSLDEwMjI4NjksMzI5MjQsMzI5MjQNCjEwMjI4NjksMzI5MjQsMDIvMjgvMjIsMTQ6MTAsMDIvMjgvMjIsMjI6MzAsNTAwLDUwMCxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMjI4NjksMzI5MjQsMzI5MjQNCjEwMjI4NjksMzI5MjQsMDIvMDMvMjAyMiwxMzo1NywwMi8wMy8yMDIyLDIyOjQ1LDUyOCw1MjgsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDA0MzIxLFJSLDEwMjI4NjksMzI5MjQsMzI5MjQNCjEwMjI4NzUsNDA5MzYsMDIvMjUvMjIsMDc6MDEsMDIvMjUvMjIsMTQ6MjgsNDQ3LDQ0NyxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMjI4NzUsNDA5MzYsNDA5MzYNCjEwMjI4NzUsNDA5MzYsMDIvMjYvMjIsMDc6NTIsMDIvMjYvMjIsMTI6MTQsMjYyLDI2MixKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCA0MzIxLFJSLDEwMjI4NzUsNDA5MzYsNDA5MzYNCjEwMjI4NzUsNDA5MzYsMDIvMjcvMjIsMDM6NTgsMDIvMjcvMjIsMTM6NTksNjAxLDYwMSxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMjI4NzUsNDA5MzYsNDA5MzYNCjEwMjI4NzUsNDA5MzYsMDIvMjgvMjIsMDM6MTYsMDIvMjgvMjIsMTU6MzUsNzM5LDczOSxKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMDQzMjEsUlIsMTAyMjg3NSw0MDkzNiw0MDkzNg0KMTAyMjg3NSw0MDkzNiwwMS8wMy8yMDIyLDA1OjQ1LDAxLzAzLzIwMjIsMTY6NTAsNjY1LDY2NSxKb2huLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCAxMjM0LFJSLDEwMjI4NzUsNDA5MzYsNDA5MzYNCjEwMjI4NzUsNDA5MzYsMDIvMDMvMjAyMiwwNzowMCwwMi8wMy8yMDIyLDE0OjMwLDQ1MCw0NTAsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgNDMyMSxSUiwxMDIyODc1LDQwOTM2LDQwOTM2DQoxMDIyODc1LDQwOTM2LDAzLzAzLzIwMjIsMDc6MjksMDMvMDMvMjAyMiwxNTozNCw0ODUsNDg1LEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsUlIsMTAyMjg3NSw0MDkzNiw0MDkzNg0KMTAyMjg3NSw0MDkzNiwwNC8wMy8yMDIyLDAyOjM2LDA0LzAzLzIwMjIsMDY6NTksMjYzLDI2MyxKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMDQzMjEsUlIsMTAyMjg3NSw0MDkzNiw0MDkzNg0KMTAyNTIxOCwzNjgyMCwwMi8yNy8yMiwwNzoxNywwMi8yNy8yMiwxNjo1MCw1NzMsNTczLEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwIDEyMzQsUlIsMTAyNTIxOCwzNjgyMCwzNjgyMA0KMTAyNTIxOCwzNjgyMCwwMS8wMy8yMDIyLDA3OjAyLDAxLzAzLzIwMjIsMTU6MjIsNTAwLDUwMCxKYW5lLCxEb2UsMDMvMDMvMjAyMiwwLDA3OjAwLDEwMCAwMCA0MzIxLFJSLDEwMjUyMTgsMzY4MjAsMzY4MjANCjEwMjUyMTgsMzY4MjAsMDMvMDMvMjAyMiwwNjo1OCwwMy8wMy8yMDIyLDE1OjIyLDUwNCw1MDQsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDI1MjE4LDM2ODIwLDM2ODIwDQoxMDI1MjE4LDM2ODIwLDA0LzAzLzIwMjIsMDU6NTksMDQvMDMvMjAyMiwxMDowMSwyNDIsMjQyLEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwNDMyMSxSUiwxMDI1MjE4LDM2ODIwLDM2ODIwDQoxMDI2MzUzLDM2ODM2LDAyLzI2LzIyLDA2OjA4LDAyLzI2LzIyLDE0OjU3LDUyOSw1MjksSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDI2MzUzLDM2ODM2LDM2ODM2DQoxMDI2MzUzLDM2ODM2LDAyLzI3LzIyLDA2OjA0LDAyLzI3LzIyLDE1OjAyLDUzOCw1MzgsSmFuZSwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgNDMyMSxSUiwxMDI2MzUzLDM2ODM2LDM2ODM2DQoxMDI2MzUzLDM2ODM2LDAyLzI4LzIyLDA4OjAxLDAyLzI4LzIyLDE1OjE4LDQzNyw0MzcsSm9obiwsRG9lLDAzLzAzLzIwMjIsMCwwNzowMCwxMDAgMDAgMTIzNCxSUiwxMDI2MzUzLDM2ODM2LDM2ODM2DQoxMDI2MzUzLDM2ODM2LDAxLzAzLzIwMjIsMDg6MDEsMDEvMDMvMjAyMiwxNDoxMSwzNzAsMzcwLEphbmUsLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwNDMyMSxSUiwxMDI2MzUzLDM2ODM2LDM2ODM2DQoxMDI2MzUzLDM2ODM2LDAyLzAzLzIwMjIsMDc6NTgsMDIvMDMvMjAyMiwxNjowNSw0ODcsNDg3LEpvaG4sLERvZSwwMy8wMy8yMDIyLDAsMDc6MDAsMTAwIDAwMTIzNCxSUiwxMDI2MzUzLDM2ODM2LDM2ODM2DQo="

If the file required to get its content does not exists, the the process will return this message:

"Error: Failed to open file."

2.5. GETLISTFILES

  • Arguments: Required: - host: It is the server where the connection will be established, can be an URL or IP. - port: This parameter is the port related to the server to stablish the connection. - username: The username that have grants to connect to the FTPS server. - password:This parameter contains the password related to have access to the FTPS server. - flag: The string that contains the option of the actinon to be executed, the next options are available: CREATEDIRECTORY, DELETEDIRECTORY, DELETEFILE, GETFILE, GETLISTFILES, RENAMEFILE, SAVEFILE. The string is not case sensitive. - secure: Is a boolean value that indicates if the connection should be secured or not. - path: The location of the directory from where the file list is required.

  • Description: This request will get a string in JSON format with all the files and directories inside the specified path. Once the request is performed, the answer will be a string in a JSON format with the result of the execution.

  • Request example:

{
	"host":"18.119.108.41",
    "port":"21",
    "username":"ftpsuser",
    "password":"Cloudgen@123",
    "secure":true,
    "flag":"GETLISTFILES",
    "path":"/files/"
}

Resultant example:

[
    {
        "type": "-",
        "name": "Ftps-test.file.txt",
        "sticky": false,
        "rights": {
            "user": "rw",
            "group": "r",
            "other": "r"
        },
        "acl": false,
        "owner": "1002",
        "group": "1002",
        "size": 0,
        "date": "2022-09-27T17:58:00.000Z"
    },
    {
        "type": "-",
        "name": "hello.txt",
        "sticky": false,
        "rights": {
            "user": "rw",
            "group": "r",
            "other": "r"
        },
        "acl": false,
        "owner": "1002",
        "group": "1002",
        "size": 0,
        "date": "2022-10-21T21:33:00.000Z"
    },
    {
        "type": "-",
        "name": "regards.txt",
        "sticky": false,
        "rights": {
            "user": "rw",
            "group": "r",
            "other": "r"
        },
        "acl": false,
        "owner": "1002",
        "group": "1002",
        "size": 35,
        "date": "2022-10-27T00:31:00.000Z"
    }
]

If the specified path does not exist, the process will return this answer:

[]

2.6. RENAMEFILE

  • Arguments: Required: - host: It is the server where the connection will be established, can be an URL or IP. - port: This parameter is the port related to the server to stablish the connection. - username: The username that have grants to connect to the FTPS server. - password:This parameter contains the password related to have access to the FTPS server. - flag: The string that contains the option of the actinon to be executed, the next options are available: CREATEDIRECTORY, DELETEDIRECTORY, DELETEFILE, GETFILE, GETLISTFILES, RENAMEFILE, SAVEFILE. The string is not case sensitive. - secure: Is a boolean value that indicates if the connection should be secured or not. - path: The location of the file that is going to be renamed. - oldName: The old name of the file. - newName: It is the name used to rename a file into the FTPS server.

  • Description: This request will rename a file inside the FTP server. Once the request is performed, the answer will be a string in a JSON format with the result of the execution.

  • Request example:

{
	"host":"18.119.108.41",
    "port":"21",
    "username":"ftpsuser",
    "password":"Cloudgen@123",
    "secure":true,
    "flag":"RENAMEFILE",
    "path":"/files/",
    "oldName":"regards.txt",
    "newName":"regardsNewName.txt"
}

Resultant example:

"File regards.txt was successfully renamed to regardsNewName.txt."

If the file that will be renamed does not exist the process will return this message:

"Error: RNFR command failed."

2.7. SAVEFILE

  • Arguments: Required: - host: It is the server where the connection will be established, can be an URL or IP. - port: This parameter is the port related to the server to stablish the connection. - username: The username that have grants to connect to the FTPS server. - password:This parameter contains the password related to have access to the FTPS server. - flag: The string that contains the option of the actinon to be executed, the next options are available: CREATEDIRECTORY, DELETEDIRECTORY, DELETEFILE, GETFILE, GETLISTFILES, RENAMEFILE, SAVEFILE. The string is not case sensitive. - secure: Is a boolean value that indicates if the connection should be secured or not. - file: The path where the file will be uploaded into the FTPS server. - content: The file content that will be uploaded. Optionals: - encoding: The enconding to be used to set the content of a file, if this parameter is not configured, the base64 encoding will be taken as default value.

  • Description: This request will save a file inside the FTPS, the string that corresponds with the content of the file could be in severals encodings, the parameter encoding should be specified in case of an encoding different of base64 is required. Once the request is performed, the answer will be a string in a JSON format with the result of the execution.

  • Request example:

{
	"host":"18.119.108.41",
    "port":"21",
    "username":"ftpsuser",
    "password":"Cloudgen@123",
    "secure":true,
    "flag":"SAVEFILE",
    "file":"/files/regards.txt",
    "content":"Hello world!!!",
    "enconding":"utf8"
}

Resultant example:

"File /files/regards.txt was created successfully."
1.1.3

6 months ago

1.1.2

6 months ago

1.1.1

7 months ago

1.1.0

7 months ago

1.0.11

8 months ago

1.0.12

8 months ago

1.0.9

9 months ago

1.0.8

9 months ago

1.0.7

9 months ago

1.0.6

9 months ago

1.0.5

9 months ago

1.0.10

9 months ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago

0.0.4-SNAPSHOT

2 years ago

0.0.3-SNAPSHOT

2 years ago

0.0.2-SNAPSHOT

2 years ago

0.0.1-SNAPSHOT

2 years ago