@cyvest/cyvest-js 4.4.0 → 4.4.1
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/dist/{index.mjs → index.cjs} +141 -6
- package/dist/index.js +6 -141
- package/package.json +15 -2
- /package/dist/{index.d.mts → index.d.cts} +0 -0
|
@@ -1,6 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/index.ts
|
|
31
|
+
var index_exports = {};
|
|
32
|
+
__export(index_exports, {
|
|
33
|
+
LEVEL_COLORS: () => LEVEL_COLORS,
|
|
34
|
+
LEVEL_ORDER: () => LEVEL_ORDER,
|
|
35
|
+
LEVEL_VALUES: () => LEVEL_VALUES,
|
|
36
|
+
areConnected: () => areConnected,
|
|
37
|
+
compareLevels: () => compareLevels,
|
|
38
|
+
countRelationshipsByType: () => countRelationshipsByType,
|
|
39
|
+
findChecksAtLeast: () => findChecksAtLeast,
|
|
40
|
+
findChecksByCheckId: () => findChecksByCheckId,
|
|
41
|
+
findChecksByLevel: () => findChecksByLevel,
|
|
42
|
+
findChecksByScope: () => findChecksByScope,
|
|
43
|
+
findContainersAtLeast: () => findContainersAtLeast,
|
|
44
|
+
findContainersByLevel: () => findContainersByLevel,
|
|
45
|
+
findExternalObservables: () => findExternalObservables,
|
|
46
|
+
findInternalObservables: () => findInternalObservables,
|
|
47
|
+
findLeafObservables: () => findLeafObservables,
|
|
48
|
+
findObservablesAtLeast: () => findObservablesAtLeast,
|
|
49
|
+
findObservablesByLevel: () => findObservablesByLevel,
|
|
50
|
+
findObservablesByType: () => findObservablesByType,
|
|
51
|
+
findObservablesByValue: () => findObservablesByValue,
|
|
52
|
+
findObservablesContaining: () => findObservablesContaining,
|
|
53
|
+
findObservablesMatching: () => findObservablesMatching,
|
|
54
|
+
findObservablesWithThreatIntel: () => findObservablesWithThreatIntel,
|
|
55
|
+
findOrphanObservables: () => findOrphanObservables,
|
|
56
|
+
findPath: () => findPath,
|
|
57
|
+
findRootObservables: () => findRootObservables,
|
|
58
|
+
findThreatIntelAtLeast: () => findThreatIntelAtLeast,
|
|
59
|
+
findThreatIntelByLevel: () => findThreatIntelByLevel,
|
|
60
|
+
findThreatIntelBySource: () => findThreatIntelBySource,
|
|
61
|
+
findWhitelistedObservables: () => findWhitelistedObservables,
|
|
62
|
+
generateCheckKey: () => generateCheckKey,
|
|
63
|
+
generateContainerKey: () => generateContainerKey,
|
|
64
|
+
generateEnrichmentKey: () => generateEnrichmentKey,
|
|
65
|
+
generateObservableKey: () => generateObservableKey,
|
|
66
|
+
generateThreatIntelKey: () => generateThreatIntelKey,
|
|
67
|
+
getAllChecks: () => getAllChecks,
|
|
68
|
+
getAllContainers: () => getAllContainers,
|
|
69
|
+
getAllEnrichments: () => getAllEnrichments,
|
|
70
|
+
getAllObservableTypes: () => getAllObservableTypes,
|
|
71
|
+
getAllObservables: () => getAllObservables,
|
|
72
|
+
getAllRelationshipTypes: () => getAllRelationshipTypes,
|
|
73
|
+
getAllScopes: () => getAllScopes,
|
|
74
|
+
getAllThreatIntelSources: () => getAllThreatIntelSources,
|
|
75
|
+
getAllThreatIntels: () => getAllThreatIntels,
|
|
76
|
+
getCheck: () => getCheck,
|
|
77
|
+
getCheckByIdScope: () => getCheckByIdScope,
|
|
78
|
+
getChecksForContainer: () => getChecksForContainer,
|
|
79
|
+
getChecksForObservable: () => getChecksForObservable,
|
|
80
|
+
getColorForLevel: () => getColorForLevel,
|
|
81
|
+
getColorForScore: () => getColorForScore,
|
|
82
|
+
getContainer: () => getContainer,
|
|
83
|
+
getContainerByPath: () => getContainerByPath,
|
|
84
|
+
getCounts: () => getCounts,
|
|
85
|
+
getDataExtraction: () => getDataExtraction,
|
|
86
|
+
getEnrichment: () => getEnrichment,
|
|
87
|
+
getEnrichmentByName: () => getEnrichmentByName,
|
|
88
|
+
getEntityLevel: () => getEntityLevel,
|
|
89
|
+
getHighestScoringChecks: () => getHighestScoringChecks,
|
|
90
|
+
getHighestScoringObservables: () => getHighestScoringObservables,
|
|
91
|
+
getLevelFromScore: () => getLevelFromScore,
|
|
92
|
+
getMaliciousChecks: () => getMaliciousChecks,
|
|
93
|
+
getMaliciousObservables: () => getMaliciousObservables,
|
|
94
|
+
getObservable: () => getObservable,
|
|
95
|
+
getObservableByTypeValue: () => getObservableByTypeValue,
|
|
96
|
+
getObservableChildren: () => getObservableChildren,
|
|
97
|
+
getObservableGraph: () => getObservableGraph,
|
|
98
|
+
getObservableParents: () => getObservableParents,
|
|
99
|
+
getObservablesForCheck: () => getObservablesForCheck,
|
|
100
|
+
getReachableObservables: () => getReachableObservables,
|
|
101
|
+
getRelatedObservables: () => getRelatedObservables,
|
|
102
|
+
getRelatedObservablesByDirection: () => getRelatedObservablesByDirection,
|
|
103
|
+
getRelatedObservablesByType: () => getRelatedObservablesByType,
|
|
104
|
+
getRelationshipsForObservable: () => getRelationshipsForObservable,
|
|
105
|
+
getStartedAt: () => getStartedAt,
|
|
106
|
+
getStats: () => getStats,
|
|
107
|
+
getSuspiciousChecks: () => getSuspiciousChecks,
|
|
108
|
+
getSuspiciousObservables: () => getSuspiciousObservables,
|
|
109
|
+
getThreatIntel: () => getThreatIntel,
|
|
110
|
+
getThreatIntelBySourceObservable: () => getThreatIntelBySourceObservable,
|
|
111
|
+
getThreatIntelsForObservable: () => getThreatIntelsForObservable,
|
|
112
|
+
getWhitelists: () => getWhitelists,
|
|
113
|
+
hasLevel: () => hasLevel,
|
|
114
|
+
isCyvest: () => isCyvest,
|
|
115
|
+
isLevelAtLeast: () => isLevelAtLeast,
|
|
116
|
+
isLevelHigherThan: () => isLevelHigherThan,
|
|
117
|
+
isLevelLowerThan: () => isLevelLowerThan,
|
|
118
|
+
isValidLevel: () => isValidLevel,
|
|
119
|
+
maxLevel: () => maxLevel,
|
|
120
|
+
minLevel: () => minLevel,
|
|
121
|
+
normalizeLevel: () => normalizeLevel,
|
|
122
|
+
parseCheckKey: () => parseCheckKey,
|
|
123
|
+
parseCyvest: () => parseCyvest,
|
|
124
|
+
parseKeyType: () => parseKeyType,
|
|
125
|
+
parseObservableKey: () => parseObservableKey,
|
|
126
|
+
parseThreatIntelKey: () => parseThreatIntelKey,
|
|
127
|
+
sortChecksByLevel: () => sortChecksByLevel,
|
|
128
|
+
sortChecksByScore: () => sortChecksByScore,
|
|
129
|
+
sortObservablesByLevel: () => sortObservablesByLevel,
|
|
130
|
+
sortObservablesByScore: () => sortObservablesByScore,
|
|
131
|
+
validateKey: () => validateKey
|
|
132
|
+
});
|
|
133
|
+
module.exports = __toCommonJS(index_exports);
|
|
134
|
+
|
|
1
135
|
// src/helpers.ts
|
|
2
|
-
|
|
3
|
-
|
|
136
|
+
var import__ = __toESM(require("ajv/dist/2020"), 1);
|
|
137
|
+
var import_ajv_formats = __toESM(require("ajv-formats"), 1);
|
|
4
138
|
|
|
5
139
|
// ../../../schema/cyvest.schema.json
|
|
6
140
|
var cyvest_schema_default = {
|
|
@@ -822,8 +956,8 @@ var cyvest_schema_default = {
|
|
|
822
956
|
};
|
|
823
957
|
|
|
824
958
|
// src/helpers.ts
|
|
825
|
-
var ajv = new
|
|
826
|
-
|
|
959
|
+
var ajv = new import__.default({ allErrors: true });
|
|
960
|
+
(0, import_ajv_formats.default)(ajv);
|
|
827
961
|
var validateFn = null;
|
|
828
962
|
function getValidator() {
|
|
829
963
|
if (!validateFn) {
|
|
@@ -1741,7 +1875,8 @@ function getRelationshipsForObservable(inv, observableKey) {
|
|
|
1741
1875
|
]
|
|
1742
1876
|
};
|
|
1743
1877
|
}
|
|
1744
|
-
export
|
|
1878
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
1879
|
+
0 && (module.exports = {
|
|
1745
1880
|
LEVEL_COLORS,
|
|
1746
1881
|
LEVEL_ORDER,
|
|
1747
1882
|
LEVEL_VALUES,
|
|
@@ -1841,4 +1976,4 @@ export {
|
|
|
1841
1976
|
sortObservablesByLevel,
|
|
1842
1977
|
sortObservablesByScore,
|
|
1843
1978
|
validateKey
|
|
1844
|
-
};
|
|
1979
|
+
});
|
package/dist/index.js
CHANGED
|
@@ -1,140 +1,6 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
|
|
30
|
-
// src/index.ts
|
|
31
|
-
var index_exports = {};
|
|
32
|
-
__export(index_exports, {
|
|
33
|
-
LEVEL_COLORS: () => LEVEL_COLORS,
|
|
34
|
-
LEVEL_ORDER: () => LEVEL_ORDER,
|
|
35
|
-
LEVEL_VALUES: () => LEVEL_VALUES,
|
|
36
|
-
areConnected: () => areConnected,
|
|
37
|
-
compareLevels: () => compareLevels,
|
|
38
|
-
countRelationshipsByType: () => countRelationshipsByType,
|
|
39
|
-
findChecksAtLeast: () => findChecksAtLeast,
|
|
40
|
-
findChecksByCheckId: () => findChecksByCheckId,
|
|
41
|
-
findChecksByLevel: () => findChecksByLevel,
|
|
42
|
-
findChecksByScope: () => findChecksByScope,
|
|
43
|
-
findContainersAtLeast: () => findContainersAtLeast,
|
|
44
|
-
findContainersByLevel: () => findContainersByLevel,
|
|
45
|
-
findExternalObservables: () => findExternalObservables,
|
|
46
|
-
findInternalObservables: () => findInternalObservables,
|
|
47
|
-
findLeafObservables: () => findLeafObservables,
|
|
48
|
-
findObservablesAtLeast: () => findObservablesAtLeast,
|
|
49
|
-
findObservablesByLevel: () => findObservablesByLevel,
|
|
50
|
-
findObservablesByType: () => findObservablesByType,
|
|
51
|
-
findObservablesByValue: () => findObservablesByValue,
|
|
52
|
-
findObservablesContaining: () => findObservablesContaining,
|
|
53
|
-
findObservablesMatching: () => findObservablesMatching,
|
|
54
|
-
findObservablesWithThreatIntel: () => findObservablesWithThreatIntel,
|
|
55
|
-
findOrphanObservables: () => findOrphanObservables,
|
|
56
|
-
findPath: () => findPath,
|
|
57
|
-
findRootObservables: () => findRootObservables,
|
|
58
|
-
findThreatIntelAtLeast: () => findThreatIntelAtLeast,
|
|
59
|
-
findThreatIntelByLevel: () => findThreatIntelByLevel,
|
|
60
|
-
findThreatIntelBySource: () => findThreatIntelBySource,
|
|
61
|
-
findWhitelistedObservables: () => findWhitelistedObservables,
|
|
62
|
-
generateCheckKey: () => generateCheckKey,
|
|
63
|
-
generateContainerKey: () => generateContainerKey,
|
|
64
|
-
generateEnrichmentKey: () => generateEnrichmentKey,
|
|
65
|
-
generateObservableKey: () => generateObservableKey,
|
|
66
|
-
generateThreatIntelKey: () => generateThreatIntelKey,
|
|
67
|
-
getAllChecks: () => getAllChecks,
|
|
68
|
-
getAllContainers: () => getAllContainers,
|
|
69
|
-
getAllEnrichments: () => getAllEnrichments,
|
|
70
|
-
getAllObservableTypes: () => getAllObservableTypes,
|
|
71
|
-
getAllObservables: () => getAllObservables,
|
|
72
|
-
getAllRelationshipTypes: () => getAllRelationshipTypes,
|
|
73
|
-
getAllScopes: () => getAllScopes,
|
|
74
|
-
getAllThreatIntelSources: () => getAllThreatIntelSources,
|
|
75
|
-
getAllThreatIntels: () => getAllThreatIntels,
|
|
76
|
-
getCheck: () => getCheck,
|
|
77
|
-
getCheckByIdScope: () => getCheckByIdScope,
|
|
78
|
-
getChecksForContainer: () => getChecksForContainer,
|
|
79
|
-
getChecksForObservable: () => getChecksForObservable,
|
|
80
|
-
getColorForLevel: () => getColorForLevel,
|
|
81
|
-
getColorForScore: () => getColorForScore,
|
|
82
|
-
getContainer: () => getContainer,
|
|
83
|
-
getContainerByPath: () => getContainerByPath,
|
|
84
|
-
getCounts: () => getCounts,
|
|
85
|
-
getDataExtraction: () => getDataExtraction,
|
|
86
|
-
getEnrichment: () => getEnrichment,
|
|
87
|
-
getEnrichmentByName: () => getEnrichmentByName,
|
|
88
|
-
getEntityLevel: () => getEntityLevel,
|
|
89
|
-
getHighestScoringChecks: () => getHighestScoringChecks,
|
|
90
|
-
getHighestScoringObservables: () => getHighestScoringObservables,
|
|
91
|
-
getLevelFromScore: () => getLevelFromScore,
|
|
92
|
-
getMaliciousChecks: () => getMaliciousChecks,
|
|
93
|
-
getMaliciousObservables: () => getMaliciousObservables,
|
|
94
|
-
getObservable: () => getObservable,
|
|
95
|
-
getObservableByTypeValue: () => getObservableByTypeValue,
|
|
96
|
-
getObservableChildren: () => getObservableChildren,
|
|
97
|
-
getObservableGraph: () => getObservableGraph,
|
|
98
|
-
getObservableParents: () => getObservableParents,
|
|
99
|
-
getObservablesForCheck: () => getObservablesForCheck,
|
|
100
|
-
getReachableObservables: () => getReachableObservables,
|
|
101
|
-
getRelatedObservables: () => getRelatedObservables,
|
|
102
|
-
getRelatedObservablesByDirection: () => getRelatedObservablesByDirection,
|
|
103
|
-
getRelatedObservablesByType: () => getRelatedObservablesByType,
|
|
104
|
-
getRelationshipsForObservable: () => getRelationshipsForObservable,
|
|
105
|
-
getStartedAt: () => getStartedAt,
|
|
106
|
-
getStats: () => getStats,
|
|
107
|
-
getSuspiciousChecks: () => getSuspiciousChecks,
|
|
108
|
-
getSuspiciousObservables: () => getSuspiciousObservables,
|
|
109
|
-
getThreatIntel: () => getThreatIntel,
|
|
110
|
-
getThreatIntelBySourceObservable: () => getThreatIntelBySourceObservable,
|
|
111
|
-
getThreatIntelsForObservable: () => getThreatIntelsForObservable,
|
|
112
|
-
getWhitelists: () => getWhitelists,
|
|
113
|
-
hasLevel: () => hasLevel,
|
|
114
|
-
isCyvest: () => isCyvest,
|
|
115
|
-
isLevelAtLeast: () => isLevelAtLeast,
|
|
116
|
-
isLevelHigherThan: () => isLevelHigherThan,
|
|
117
|
-
isLevelLowerThan: () => isLevelLowerThan,
|
|
118
|
-
isValidLevel: () => isValidLevel,
|
|
119
|
-
maxLevel: () => maxLevel,
|
|
120
|
-
minLevel: () => minLevel,
|
|
121
|
-
normalizeLevel: () => normalizeLevel,
|
|
122
|
-
parseCheckKey: () => parseCheckKey,
|
|
123
|
-
parseCyvest: () => parseCyvest,
|
|
124
|
-
parseKeyType: () => parseKeyType,
|
|
125
|
-
parseObservableKey: () => parseObservableKey,
|
|
126
|
-
parseThreatIntelKey: () => parseThreatIntelKey,
|
|
127
|
-
sortChecksByLevel: () => sortChecksByLevel,
|
|
128
|
-
sortChecksByScore: () => sortChecksByScore,
|
|
129
|
-
sortObservablesByLevel: () => sortObservablesByLevel,
|
|
130
|
-
sortObservablesByScore: () => sortObservablesByScore,
|
|
131
|
-
validateKey: () => validateKey
|
|
132
|
-
});
|
|
133
|
-
module.exports = __toCommonJS(index_exports);
|
|
134
|
-
|
|
135
1
|
// src/helpers.ts
|
|
136
|
-
|
|
137
|
-
|
|
2
|
+
import Ajv2020 from "ajv/dist/2020";
|
|
3
|
+
import addFormats from "ajv-formats";
|
|
138
4
|
|
|
139
5
|
// ../../../schema/cyvest.schema.json
|
|
140
6
|
var cyvest_schema_default = {
|
|
@@ -956,8 +822,8 @@ var cyvest_schema_default = {
|
|
|
956
822
|
};
|
|
957
823
|
|
|
958
824
|
// src/helpers.ts
|
|
959
|
-
var ajv = new
|
|
960
|
-
(
|
|
825
|
+
var ajv = new Ajv2020({ allErrors: true });
|
|
826
|
+
addFormats(ajv);
|
|
961
827
|
var validateFn = null;
|
|
962
828
|
function getValidator() {
|
|
963
829
|
if (!validateFn) {
|
|
@@ -1875,8 +1741,7 @@ function getRelationshipsForObservable(inv, observableKey) {
|
|
|
1875
1741
|
]
|
|
1876
1742
|
};
|
|
1877
1743
|
}
|
|
1878
|
-
|
|
1879
|
-
0 && (module.exports = {
|
|
1744
|
+
export {
|
|
1880
1745
|
LEVEL_COLORS,
|
|
1881
1746
|
LEVEL_ORDER,
|
|
1882
1747
|
LEVEL_VALUES,
|
|
@@ -1976,4 +1841,4 @@ function getRelationshipsForObservable(inv, observableKey) {
|
|
|
1976
1841
|
sortObservablesByLevel,
|
|
1977
1842
|
sortObservablesByScore,
|
|
1978
1843
|
validateKey
|
|
1979
|
-
}
|
|
1844
|
+
};
|
package/package.json
CHANGED
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyvest/cyvest-js",
|
|
3
|
-
"version": "4.4.
|
|
3
|
+
"version": "4.4.1",
|
|
4
|
+
"type": "module",
|
|
4
5
|
"main": "dist/index.cjs",
|
|
5
|
-
"module": "dist/index.
|
|
6
|
+
"module": "dist/index.js",
|
|
6
7
|
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"default": "./dist/index.js"
|
|
13
|
+
},
|
|
14
|
+
"require": {
|
|
15
|
+
"types": "./dist/index.d.cts",
|
|
16
|
+
"default": "./dist/index.cjs"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
},
|
|
7
20
|
"sideEffects": false,
|
|
8
21
|
"dependencies": {
|
|
9
22
|
"ajv": "^8.17.1",
|
|
File without changes
|