// Path: src/main/java/Diadoc/Api/DiadocApi.java
// public class DiadocApi {
// 
//     private AuthManager authManager;
//     private AuthenticateClient authClient;
//     private OrganizationClient organizationClient;
//     private DepartmentClient departmentClient;
//     private EmployeeClient employeeClient;
//     private UserClient userClient;
//     private CounteragentClient counteragentClient;
//     private GenerateClient generateClient;
//     private ShelfClient shelfClient;
//     private MessageClient messageClient;
//     private TemplateClient templateClient;
//     private DocumentClient documentClient;
//     private EventsClient eventsClient;
//     private ParseClient parseClient;
//     private PrintFormClient printFormClient;
//     private SignClient signClient;
//     private DocumentTypeClient documentTypeClient;
//     private DocflowClient docflowClient;
// 
//     public DiadocApi(String apiClientId, String url, @Nullable HttpHost proxyHost, @Nullable ConnectionSettings connectionSettings) {
//         if (url == null) {
//             throw new IllegalArgumentException("url");
//         }
//         authManager = new AuthManager(apiClientId);
//         DiadocHttpClient diadocHttpClient = new DiadocHttpClient(authManager.getCredentialsProvider(), url, proxyHost, connectionSettings);
//         authClient = new AuthenticateClient(authManager, diadocHttpClient);
//         organizationClient = new OrganizationClient(diadocHttpClient);
//         departmentClient = new DepartmentClient(diadocHttpClient);
//         employeeClient = new EmployeeClient(diadocHttpClient);
//         userClient = new UserClient(diadocHttpClient);
//         counteragentClient = new CounteragentClient(diadocHttpClient);
//         generateClient = new GenerateClient(diadocHttpClient);
//         shelfClient = new ShelfClient(diadocHttpClient);
//         messageClient = new MessageClient(diadocHttpClient);
//         templateClient = new TemplateClient(diadocHttpClient);
//         documentClient = new DocumentClient(diadocHttpClient);
//         eventsClient = new EventsClient(diadocHttpClient);
//         parseClient = new ParseClient(diadocHttpClient);
//         printFormClient = new PrintFormClient(diadocHttpClient);
//         signClient = new SignClient(diadocHttpClient);
//         documentTypeClient = new DocumentTypeClient(diadocHttpClient);
//         docflowClient = new DocflowClient(diadocHttpClient);
//         authManager.setCredentials(null);
//     }
// 
//     public DiadocApi(String apiClientId, String url) {
//         this(apiClientId, url, null, null);
//     }
// 
//     public AuthenticateClient getAuthClient() {
//         return authClient;
//     }
// 
//     public DepartmentClient getDepartmentClient() {
//         return departmentClient;
//     }
// 
//     public OrganizationClient getOrganizationClient() {
//         return organizationClient;
//     }
// 
//     public EmployeeClient getEmployeeClient() {
//         return employeeClient;
//     }
// 
//     public UserClient getUserClient() {
//         return userClient;
//     }
// 
//     public CounteragentClient getCounteragentClient() {
//         return counteragentClient;
//     }
// 
//     public GenerateClient getGenerateClient() {
//         return generateClient;
//     }
// 
//     public ShelfClient getShelfClient() {
//         return shelfClient;
//     }
// 
//     public MessageClient getMessageClient() {
//         return messageClient;
//     }
// 
//     public TemplateClient templateClient() {
//         return templateClient;
//     }
// 
//     public DocumentClient getDocumentClient() {
//         return documentClient;
//     }
// 
//     public EventsClient getEventsClient() {
//         return eventsClient;
//     }
// 
//     public ParseClient getParseClient() {
//         return parseClient;
//     }
// 
//     public PrintFormClient getPrintFormClient() {
//         return printFormClient;
//     }
// 
//     public SignClient getSignClient() {
//         return signClient;
//     }
// 
//     public DocumentTypeClient getDocumentTypeClient() {
//         return documentTypeClient;
//     }
// 
//     public DocflowClient getDocflowClient() {
//         return docflowClient;
//     }
// 
//     public AuthManager getAuthManager() {
//         return authManager;
//     }
// }


import Diadoc.Api.DiadocApi;
package Diadoc.Api.helpers;


public class EnvironmentHelpers {

    public static String getUserAgentString() {
        return getDiadocSdkVersion() + ";" + getJavaRuntimeVersion();
    }

    private static String getDiadocSdkVersion() {
        try {
// Path: src/main/java/Diadoc/Api/DiadocApi.java
// public class DiadocApi {
// 
//     private AuthManager authManager;
//     private AuthenticateClient authClient;
//     private OrganizationClient organizationClient;
//     private DepartmentClient departmentClient;
//     private EmployeeClient employeeClient;
//     private UserClient userClient;
//     private CounteragentClient counteragentClient;
//     private GenerateClient generateClient;
//     private ShelfClient shelfClient;
//     private MessageClient messageClient;
//     private TemplateClient templateClient;
//     private DocumentClient documentClient;
//     private EventsClient eventsClient;
//     private ParseClient parseClient;
//     private PrintFormClient printFormClient;
//     private SignClient signClient;
//     private DocumentTypeClient documentTypeClient;
//     private DocflowClient docflowClient;
// 
//     public DiadocApi(String apiClientId, String url, @Nullable HttpHost proxyHost, @Nullable ConnectionSettings connectionSettings) {
//         if (url == null) {
//             throw new IllegalArgumentException("url");
//         }
//         authManager = new AuthManager(apiClientId);
//         DiadocHttpClient diadocHttpClient = new DiadocHttpClient(authManager.getCredentialsProvider(), url, proxyHost, connectionSettings);
//         authClient = new AuthenticateClient(authManager, diadocHttpClient);
//         organizationClient = new OrganizationClient(diadocHttpClient);
//         departmentClient = new DepartmentClient(diadocHttpClient);
//         employeeClient = new EmployeeClient(diadocHttpClient);
//         userClient = new UserClient(diadocHttpClient);
//         counteragentClient = new CounteragentClient(diadocHttpClient);
//         generateClient = new GenerateClient(diadocHttpClient);
//         shelfClient = new ShelfClient(diadocHttpClient);
//         messageClient = new MessageClient(diadocHttpClient);
//         templateClient = new TemplateClient(diadocHttpClient);
//         documentClient = new DocumentClient(diadocHttpClient);
//         eventsClient = new EventsClient(diadocHttpClient);
//         parseClient = new ParseClient(diadocHttpClient);
//         printFormClient = new PrintFormClient(diadocHttpClient);
//         signClient = new SignClient(diadocHttpClient);
//         documentTypeClient = new DocumentTypeClient(diadocHttpClient);
//         docflowClient = new DocflowClient(diadocHttpClient);
//         authManager.setCredentials(null);
//     }
// 
//     public DiadocApi(String apiClientId, String url) {
//         this(apiClientId, url, null, null);
//     }
// 
//     public AuthenticateClient getAuthClient() {
//         return authClient;
//     }
// 
//     public DepartmentClient getDepartmentClient() {
//         return departmentClient;
//     }
// 
//     public OrganizationClient getOrganizationClient() {
//         return organizationClient;
//     }
// 
//     public EmployeeClient getEmployeeClient() {
//         return employeeClient;
//     }
// 
//     public UserClient getUserClient() {
//         return userClient;
//     }
// 
//     public CounteragentClient getCounteragentClient() {
//         return counteragentClient;
//     }
// 
//     public GenerateClient getGenerateClient() {
//         return generateClient;
//     }
// 
//     public ShelfClient getShelfClient() {
//         return shelfClient;
//     }
// 
//     public MessageClient getMessageClient() {
//         return messageClient;
//     }
// 
//     public TemplateClient templateClient() {
//         return templateClient;
//     }
// 
//     public DocumentClient getDocumentClient() {
//         return documentClient;
//     }
// 
//     public EventsClient getEventsClient() {
//         return eventsClient;
//     }
// 
//     public ParseClient getParseClient() {
//         return parseClient;
//     }
// 
//     public PrintFormClient getPrintFormClient() {
//         return printFormClient;
//     }
// 
//     public SignClient getSignClient() {
//         return signClient;
//     }
// 
//     public DocumentTypeClient getDocumentTypeClient() {
//         return documentTypeClient;
//     }
// 
//     public DocflowClient getDocflowClient() {
//         return docflowClient;
//     }
// 
//     public AuthManager getAuthManager() {
//         return authManager;
//     }
// }


// Path: src/main/java/Diadoc/Api/helpers/EnvironmentHelpers.java
import Diadoc.Api.DiadocApi;

package Diadoc.Api.helpers;


public class EnvironmentHelpers {

    public static String getUserAgentString() {
        return getDiadocSdkVersion() + ";" + getJavaRuntimeVersion();
    }

    private static String getDiadocSdkVersion() {
        try {
            Package currentPackage = DiadocApi.class.getPackage();