@getjones/test-infra 1.3.6 → 1.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/index.js +4 -4
- package/src/saas/internal-api/accounts/api/settings/{settings.setup.js → settings.service.js} +1 -1
- package/src/saas/internal-api/accounts/index.js +5 -4
- package/src/saas/internal-api/accounts/models/settings/update.settings.model.js +0 -2
- package/src/saas/internal-api/accounts/utils/utils.js +32 -0
- package/src/saas/internal-api/auth/api/{auth.setup.js → auth.service.js} +5 -5
- package/src/saas/internal-api/auth/index.js +1 -1
- package/src/saas/internal-api/coi/consts/uploaderTypes.js +7 -0
- package/src/saas/internal-api/coi/index.js +11 -4
- package/src/saas/internal-api/coi/utils/utils.js +48 -0
- package/src/saas/internal-api/compliance/index.js +6 -11
- package/src/saas/internal-api/contractors/index.js +1 -1
- package/src/saas/internal-api/globalRecord/api/global.record.api.js +8 -2
- package/src/saas/internal-api/globalRecord/api/{global.record.setup.js → global.record.service.js} +6 -1
- package/src/saas/internal-api/globalRecord/index.js +2 -2
- package/src/saas/internal-api/globalRecord/utils/util.js +3 -3
- package/src/saas/internal-api/homepageCharts/index.js +1 -1
- package/src/saas/internal-api/projects/api/core/{projects.setup.js → projects.service.js} +1 -1
- package/src/saas/internal-api/projects/index.js +2 -2
- package/src/saas/internal-api/recordNotes/index.js +3 -0
- package/src/saas/internal-api/reports/index.js +1 -1
- package/src/saas/internal-api/requirements/index.js +1 -1
- package/src/saas/internal-api/tabs/index.js +1 -1
- package/src/saas/internal-api/users/index.js +1 -1
- package/src/saas/internal-api/vendorProfile/index.js +3 -0
- package/src/saas/openapi/requirements/index.js +1 -1
- /package/src/saas/internal-api/accounts/api/core/{accounts.core.setup.js → accounts.core.service.js} +0 -0
- /package/src/saas/internal-api/accounts/api/openapi/{accounts.openapi.setup.js → accounts.openapi.service.js} +0 -0
- /package/src/saas/internal-api/coi/api/{coi.setup.js → coi.service.js} +0 -0
- /package/src/saas/internal-api/compliance/api/audit/{audit.setup.js → audit.service.js} +0 -0
- /package/src/saas/internal-api/compliance/api/convert/{convert.setup.js → convert.service.js} +0 -0
- /package/src/saas/internal-api/compliance/api/coverage/{coverage.setup.js → coverage.service.js} +0 -0
- /package/src/saas/internal-api/compliance/api/waive/{waive.setup.js → waive.service.js} +0 -0
- /package/src/saas/internal-api/contractors/api/{contractors.setup.js → contractors.service.js} +0 -0
- /package/src/saas/internal-api/homepageCharts/api/{charts.setup.js → charts.service.js} +0 -0
- /package/src/saas/internal-api/projects/api/settings/{project.settings.setup.js → project.settings.service.js} +0 -0
- /package/src/saas/internal-api/recordNotes/api/{record.notes.setup.js → record.notes.service.js} +0 -0
- /package/src/saas/internal-api/reports/api/{reports.setup.js → reports.service.js} +0 -0
- /package/src/saas/internal-api/requirements/api/{requirements.setup.js → requirements.service.js} +0 -0
- /package/src/saas/internal-api/tabs/api/{tabs.setup.js → tabs.service.js} +0 -0
- /package/src/saas/internal-api/users/api/{users.setup.js → users.service.js} +0 -0
- /package/src/saas/internal-api/vendorProfile/api/{vendor.profile.setup.js → vendor.profile.service.js} +0 -0
- /package/src/saas/openapi/accounts/{accounts.setup.js → accounts.service.js} +0 -0
- /package/src/saas/openapi/contractors/{contractors.setup.js → contractors.service.js} +0 -0
- /package/src/saas/openapi/projects/{projects.setup.js → projects.service.js} +0 -0
- /package/src/saas/openapi/requirements/{requirements.setup.js → requirements.service.js} +0 -0
- /package/src/saas/openapi/tabs/{tabs.setup.js → tabs.service.js} +0 -0
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -49,10 +49,10 @@ const getInternalAPI = () => {
|
|
|
49
49
|
};
|
|
50
50
|
|
|
51
51
|
const getOpenAPI = () => {
|
|
52
|
-
const accounts = require('./saas/openapi/accounts/accounts.
|
|
53
|
-
const tabs = require('./saas/openapi/tabs/tabs.
|
|
54
|
-
const contractors = require('./saas/openapi/contractors/contractors.
|
|
55
|
-
const projects = require('./saas/openapi/projects/projects.
|
|
52
|
+
const accounts = require('./saas/openapi/accounts/accounts.service');
|
|
53
|
+
const tabs = require('./saas/openapi/tabs/tabs.service');
|
|
54
|
+
const contractors = require('./saas/openapi/contractors/contractors.service');
|
|
55
|
+
const projects = require('./saas/openapi/projects/projects.service');
|
|
56
56
|
const requirements = require('./saas/openapi/requirements');
|
|
57
57
|
const openAPI = { accounts, tabs, contractors, projects, requirements };
|
|
58
58
|
return openAPI;
|
package/src/saas/internal-api/accounts/api/settings/{settings.setup.js → settings.service.js}
RENAMED
|
@@ -12,7 +12,7 @@ const updateAccountSettings = (updateAccountSettingsModel, context) => {
|
|
|
12
12
|
};
|
|
13
13
|
|
|
14
14
|
const restoreAccountSettings = (accountId, context) => {
|
|
15
|
-
const updateAccountSettingsModel = new UpdateAccountSettingsModel(accountId, false, false, false
|
|
15
|
+
const updateAccountSettingsModel = new UpdateAccountSettingsModel(accountId, false, false, false);
|
|
16
16
|
return accountsAPI.updateAccountSettings(updateAccountSettingsModel, context);
|
|
17
17
|
};
|
|
18
18
|
|
|
@@ -5,10 +5,11 @@ const UpdateAccountSettingsModel = require('./models/settings/update.settings.mo
|
|
|
5
5
|
const settingsModels = { UpdateAccountSettingsModel };
|
|
6
6
|
|
|
7
7
|
const models = { core: coreModels, settings: settingsModels };
|
|
8
|
+
const utils = require('./utils/utils');
|
|
8
9
|
|
|
9
|
-
const coreService = require('./api/core/accounts.core.
|
|
10
|
-
const openApiServices = require('./api/openapi/accounts.openapi.
|
|
11
|
-
const settingsServices = require('./api/settings/settings.
|
|
10
|
+
const coreService = require('./api/core/accounts.core.service');
|
|
11
|
+
const openApiServices = require('./api/openapi/accounts.openapi.service');
|
|
12
|
+
const settingsServices = require('./api/settings/settings.service');
|
|
12
13
|
|
|
13
14
|
const services = {
|
|
14
15
|
core: coreService,
|
|
@@ -16,4 +17,4 @@ const services = {
|
|
|
16
17
|
settings: settingsServices
|
|
17
18
|
};
|
|
18
19
|
|
|
19
|
-
module.exports = { services, models };
|
|
20
|
+
module.exports = { services, models, utils };
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
class UpdateAccountSettingsModel {
|
|
2
2
|
constructor(
|
|
3
3
|
accountId,
|
|
4
|
-
isMultiPropertyTenants,
|
|
5
4
|
isHighPriority,
|
|
6
5
|
hasAnalyticsDashboard,
|
|
7
6
|
isExcludedFromNetwork
|
|
8
7
|
) {
|
|
9
8
|
this.accountId = accountId;
|
|
10
|
-
this.isMultiPropertyTenants = isMultiPropertyTenants;
|
|
11
9
|
this.isHighPriority = isHighPriority;
|
|
12
10
|
this.hasAnalyticsDashboard = hasAnalyticsDashboard;
|
|
13
11
|
this.isExcludedFromNetwork = isExcludedFromNetwork;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
const coreService = require('../api/core/accounts.core.service');
|
|
2
|
+
const CreateAccountModel = require('../models/core/create.account.model');
|
|
3
|
+
|
|
4
|
+
const getOrCreateAccount = (context, accountName, email, { password, type } = {}) => {
|
|
5
|
+
const createAccountModel = new CreateAccountModel(
|
|
6
|
+
accountName,
|
|
7
|
+
email,
|
|
8
|
+
password,
|
|
9
|
+
propertyType = type
|
|
10
|
+
);
|
|
11
|
+
return coreService.getOrCreateAccount(createAccountModel, context);
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const createAccount = async (context, accountName, email, { password, type } = {}) => {
|
|
15
|
+
const createAccountModel = new CreateAccountModel(
|
|
16
|
+
accountName,
|
|
17
|
+
email,
|
|
18
|
+
password,
|
|
19
|
+
propertyType = type
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
const response = await coreService.createAccount(createAccountModel, context);
|
|
23
|
+
return response.data;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
const deleteAccountByName = async (context, accountName) => {
|
|
27
|
+
const existingAccount = await coreService.getAccount(accountName, context);
|
|
28
|
+
|
|
29
|
+
return existingAccount && coreService.deleteAccountById(existingAccount.userId, context);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
module.exports = { getOrCreateAccount, createAccount, deleteAccountByName };
|
|
@@ -4,8 +4,8 @@ const authApi = require('./auth.api');
|
|
|
4
4
|
|
|
5
5
|
const getAuthCookie = async (email, password) => {
|
|
6
6
|
try {
|
|
7
|
-
const
|
|
8
|
-
const authCookie =
|
|
7
|
+
const response = await authApi.login(email, password);
|
|
8
|
+
const authCookie = response.headers['set-cookie'].find(item => item.startsWith('JonesToken='));
|
|
9
9
|
|
|
10
10
|
return authCookie;
|
|
11
11
|
} catch (error) {
|
|
@@ -13,7 +13,7 @@ const getAuthCookie = async (email, password) => {
|
|
|
13
13
|
}
|
|
14
14
|
};
|
|
15
15
|
|
|
16
|
-
const getIcsCookie =
|
|
16
|
+
const getIcsCookie = () => {
|
|
17
17
|
requiredValidation({
|
|
18
18
|
'credentials.superUser': credentials.superUser,
|
|
19
19
|
'credentials.superUserPassword': credentials.superUserPassword
|
|
@@ -21,7 +21,7 @@ const getIcsCookie = async () => {
|
|
|
21
21
|
return getAuthCookie(credentials.superUser, credentials.superUserPassword);
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
-
const getAuditorCookie =
|
|
24
|
+
const getAuditorCookie = () => {
|
|
25
25
|
const { auditorUser, auditorPassword } = credentials;
|
|
26
26
|
requiredValidation({
|
|
27
27
|
'credentials.auditorUser': auditorUser,
|
|
@@ -30,7 +30,7 @@ const getAuditorCookie = async () => {
|
|
|
30
30
|
return getAuthCookie(auditorUser, auditorPassword);
|
|
31
31
|
};
|
|
32
32
|
|
|
33
|
-
const getOperatorCookie =
|
|
33
|
+
const getOperatorCookie = () => {
|
|
34
34
|
const { operatorUser, operatorPassword } = credentials;
|
|
35
35
|
requiredValidation({
|
|
36
36
|
'credentials.operatorUser': operatorUser,
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
const
|
|
2
|
-
const services = require('./api/coi.setup');
|
|
1
|
+
const services = require('./api/coi.service');
|
|
3
2
|
|
|
4
|
-
const models = {
|
|
3
|
+
const models = {
|
|
4
|
+
submit: require('./models/submit.coi.model')
|
|
5
|
+
};
|
|
5
6
|
|
|
6
|
-
|
|
7
|
+
const utils = require('./utils/utils');
|
|
8
|
+
|
|
9
|
+
const consts = {
|
|
10
|
+
UPLOADER_TYPES: require('./consts/uploaderTypes')
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
module.exports = { services, models, utils, consts };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
const fs = require('fs');
|
|
2
|
+
|
|
3
|
+
const services = require('../api/coi.service');
|
|
4
|
+
const { SubmitCoiModel } = require('../models/submit.coi.model');
|
|
5
|
+
|
|
6
|
+
const uploadFileToStorage = (recordId, filePath) => {
|
|
7
|
+
const fileData = fs.createReadStream(filePath);
|
|
8
|
+
return services.uploadToS3(recordId, fileData);
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const submitCoiFilesUpload = (recordId, fileIds, uploaderType, uploaderEmail) => {
|
|
12
|
+
const submitCoiModel = new SubmitCoiModel(
|
|
13
|
+
recordId,
|
|
14
|
+
fileIds,
|
|
15
|
+
uploaderType,
|
|
16
|
+
uploaderEmail
|
|
17
|
+
);
|
|
18
|
+
return services.submitCoi(submitCoiModel);
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const uploadCoi = async (
|
|
22
|
+
recordId,
|
|
23
|
+
filePath,
|
|
24
|
+
uploaderType,
|
|
25
|
+
uploaderEmail,
|
|
26
|
+
{
|
|
27
|
+
markAsScaned, // Should be passed with context
|
|
28
|
+
context
|
|
29
|
+
} = {}
|
|
30
|
+
) => {
|
|
31
|
+
const uploadResponse = await uploadFileToStorage(recordId, filePath);
|
|
32
|
+
const fileId = uploadResponse.data.fileId;
|
|
33
|
+
|
|
34
|
+
const submitResponse = fileId && await submitCoiFilesUpload(recordId, [fileId], uploaderType, uploaderEmail);
|
|
35
|
+
const uploadedCoi = !!submitResponse.data.fileName && { id: fileId, name: submitResponse.data.fileName };
|
|
36
|
+
|
|
37
|
+
if (uploadedCoi.name && markAsScaned && context) {
|
|
38
|
+
await services.completeScan(recordId, uploadedCoi.name, context);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return uploadedCoi;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
module.exports = {
|
|
45
|
+
uploadCoi,
|
|
46
|
+
uploadFileToStorage,
|
|
47
|
+
submitCoiFilesUpload
|
|
48
|
+
};
|
|
@@ -1,27 +1,22 @@
|
|
|
1
1
|
const auditModels = require('./models/audit/audit.model');
|
|
2
|
-
const auditServices = require('./api/audit/audit.
|
|
2
|
+
const auditServices = require('./api/audit/audit.service');
|
|
3
3
|
|
|
4
4
|
const waiveModels = require('./models/waive/waive.model');
|
|
5
|
-
const waiveServices = require('./api/waive/waive.
|
|
5
|
+
const waiveServices = require('./api/waive/waive.service');
|
|
6
6
|
|
|
7
|
-
const convertServices = require('./api/convert/convert.
|
|
8
|
-
const coverageServices = require('./api/coverage/coverage.
|
|
9
|
-
|
|
10
|
-
const globalRecordModels = require('../globalRecord/models/global.record.model');
|
|
11
|
-
const globalRecordServices = require('../globalRecord/api/global.record.setup');
|
|
7
|
+
const convertServices = require('./api/convert/convert.service');
|
|
8
|
+
const coverageServices = require('./api/coverage/coverage.service');
|
|
12
9
|
|
|
13
10
|
const models = {
|
|
14
11
|
audit: auditModels,
|
|
15
|
-
waive: waiveModels
|
|
16
|
-
globalRecord: globalRecordModels
|
|
12
|
+
waive: waiveModels
|
|
17
13
|
};
|
|
18
14
|
|
|
19
15
|
const services = {
|
|
20
16
|
audit: auditServices,
|
|
21
17
|
waive: waiveServices,
|
|
22
18
|
convert: convertServices,
|
|
23
|
-
coverage: coverageServices
|
|
24
|
-
globalRecord: globalRecordServices
|
|
19
|
+
coverage: coverageServices
|
|
25
20
|
};
|
|
26
21
|
|
|
27
22
|
module.exports = { services, models };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const createModel = require('./models/create.contractor.model');
|
|
2
2
|
const editModel = require('./models/edit.contractor.model');
|
|
3
|
-
const services = require('./api/contractors.
|
|
3
|
+
const services = require('./api/contractors.service');
|
|
4
4
|
|
|
5
5
|
const models = { create: createModel, edit: editModel };
|
|
6
6
|
|
|
@@ -12,7 +12,8 @@ const Endpoints = {
|
|
|
12
12
|
updateGlobalRecord: id => `${nodeBackendUrl}/global-record/id/${id}`,
|
|
13
13
|
getRecordProfileDetails: id => `${nodeBackendUrl}/global-record/record-profile/id/${id}`,
|
|
14
14
|
getGlobalRecordByPolicyNumber: policyNumber => `${nodeBackendUrl}/global-record/policyNumber/${policyNumber}`,
|
|
15
|
-
publishGlobalRecord: `${backendUrl}/saas/global-record/publish
|
|
15
|
+
publishGlobalRecord: `${backendUrl}/saas/global-record/publish`,
|
|
16
|
+
getGlobalRecordLinkedRequests: id => `${backendUrl}/saas/global-record/${id}/linked-requests`
|
|
16
17
|
};
|
|
17
18
|
|
|
18
19
|
const getGlobalRecord = async (id, nodeBackendSecret) => {
|
|
@@ -51,6 +52,10 @@ const getGlobalRecordByPolicyNumber = async (policyNumber, nodeBackendSecret) =>
|
|
|
51
52
|
return apiKeyAuthRequests.getRequestHandler(Endpoints.getGlobalRecordByPolicyNumber(policyNumber), nodeBackendSecret);
|
|
52
53
|
};
|
|
53
54
|
|
|
55
|
+
const getGlobalRecordLinkedRequests = async (id, context) => {
|
|
56
|
+
return cookieAuthRequests.getRequestHandler(Endpoints.getGlobalRecordLinkedRequests(id), {}, context);
|
|
57
|
+
};
|
|
58
|
+
|
|
54
59
|
module.exports = {
|
|
55
60
|
createGlobalRecord,
|
|
56
61
|
getGlobalRecord,
|
|
@@ -60,5 +65,6 @@ module.exports = {
|
|
|
60
65
|
updateGlobalRecord,
|
|
61
66
|
getRecordProfileDetails,
|
|
62
67
|
getGlobalRecordByPolicyNumber,
|
|
63
|
-
publishGlobalRecord
|
|
68
|
+
publishGlobalRecord,
|
|
69
|
+
getGlobalRecordLinkedRequests
|
|
64
70
|
};
|
package/src/saas/internal-api/globalRecord/api/{global.record.setup.js → global.record.service.js}
RENAMED
|
@@ -56,6 +56,10 @@ const publishGlobalRecord = async (globalRecordDetails, context) => {
|
|
|
56
56
|
return globalRecordAPI.publishGlobalRecord(globalRecordDetails, context);
|
|
57
57
|
};
|
|
58
58
|
|
|
59
|
+
const getGlobalRecordLinkedRequests = async (id, context) => {
|
|
60
|
+
return globalRecordAPI.getGlobalRecordLinkedRequests(id, context);
|
|
61
|
+
};
|
|
62
|
+
|
|
59
63
|
module.exports = {
|
|
60
64
|
createGlobalRecord,
|
|
61
65
|
getGlobalRecordById,
|
|
@@ -68,5 +72,6 @@ module.exports = {
|
|
|
68
72
|
updateGlobalRecord,
|
|
69
73
|
getRecordProfileDetails,
|
|
70
74
|
getGlobalRecordByPolicyNumber,
|
|
71
|
-
publishGlobalRecord
|
|
75
|
+
publishGlobalRecord,
|
|
76
|
+
getGlobalRecordLinkedRequests
|
|
72
77
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const models = require('
|
|
2
|
-
const services = require('
|
|
1
|
+
const models = require('./models/global.record.model');
|
|
2
|
+
const services = require('./api/global.record.service');
|
|
3
3
|
const consts = require('./consts');
|
|
4
4
|
const utils = require('./utils/util');
|
|
5
5
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const globalRecordServices = require('../api/global.record.
|
|
1
|
+
const globalRecordServices = require('../api/global.record.service');
|
|
2
2
|
const globalRecordModels = require('../models/global.record.model');
|
|
3
3
|
|
|
4
4
|
const { CreateGlobalRecordModel } = globalRecordModels;
|
|
@@ -88,7 +88,7 @@ const createGlobalRecords = async (globalRecordModelList, context) => {
|
|
|
88
88
|
return newGlobalRecodDetailsList;
|
|
89
89
|
};
|
|
90
90
|
|
|
91
|
-
const
|
|
91
|
+
const getGlobalRecordsByNumberOfPages = async (numberOfPages, context) => {
|
|
92
92
|
const allGlobalRecords = new Array();
|
|
93
93
|
|
|
94
94
|
for (let pageNumber = 1; pageNumber <= numberOfPages; pageNumber++) {
|
|
@@ -119,6 +119,6 @@ module.exports = {
|
|
|
119
119
|
createGlobalRecordModels,
|
|
120
120
|
getCreateRandomGlobalRecordModels,
|
|
121
121
|
getGlobalRecordsDefaultNameList,
|
|
122
|
-
|
|
122
|
+
getGlobalRecordsByNumberOfPages,
|
|
123
123
|
getServiceArea
|
|
124
124
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const projectsApi = require('./projects.api');
|
|
2
|
-
const accounts = require('../../../accounts
|
|
2
|
+
const { core: accounts } = require('../../../accounts');
|
|
3
3
|
const { validateType } = require('../../../../../common/validations/typeValidations');
|
|
4
4
|
const CreateProjectModel = require('../../models/core/create.project.model');
|
|
5
5
|
const UpdateProjectModel = require('../../models/core/update.project.model');
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const projectService = require('./api/core/projects.
|
|
2
|
-
const projectSettingsService = require('./api/settings/project.settings.
|
|
1
|
+
const projectService = require('./api/core/projects.service');
|
|
2
|
+
const projectSettingsService = require('./api/settings/project.settings.service');
|
|
3
3
|
const CreateProjectModel = require('./models/core/create.project.model');
|
|
4
4
|
const UpdateProjectModel = require('./models/core/update.project.model');
|
|
5
5
|
const UpdateProjectSettingsModel = require('./models/settings/update.project.settings.model');
|
/package/src/saas/internal-api/accounts/api/core/{accounts.core.setup.js → accounts.core.service.js}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/src/saas/internal-api/compliance/api/convert/{convert.setup.js → convert.service.js}
RENAMED
|
File without changes
|
/package/src/saas/internal-api/compliance/api/coverage/{coverage.setup.js → coverage.service.js}
RENAMED
|
File without changes
|
|
File without changes
|
/package/src/saas/internal-api/contractors/api/{contractors.setup.js → contractors.service.js}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/src/saas/internal-api/recordNotes/api/{record.notes.setup.js → record.notes.service.js}
RENAMED
|
File without changes
|
|
File without changes
|
/package/src/saas/internal-api/requirements/api/{requirements.setup.js → requirements.service.js}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|