weboptimizer 4.0.93 → 4.0.95-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/{browser.js → dist/browser.js} +1 -1
- package/{configurator.js → dist/configurator.js} +3 -3
- package/{ejsLoader.js → dist/ejsLoader.js} +1 -1
- package/{eslint.config.js → dist/eslint.config.js} +1 -1
- package/{helper.js → dist/helper.js} +1 -1
- package/{index.js → dist/index.js} +2 -2
- package/{jestSetup.js → dist/jestSetup.js} +1 -1
- package/{plugins → dist/plugins}/HTMLTransformation.js +1 -1
- package/{plugins → dist/plugins}/InPlaceAssetsIntoHTML.js +1 -1
- package/{stylelintConfigurator.js → dist/stylelintConfigurator.js} +1 -1
- package/{type.js → dist/type.js} +1 -1
- package/{webpackConfigurator.js → dist/webpackConfigurator.js} +9 -3
- package/jest.json +1 -1
- package/package.json +36 -55
- package/readme.md +1 -1
- package/tsconfig.json +2 -0
- /package/{browser.d.ts → dist/browser.d.ts} +0 -0
- /package/{configurator.d.ts → dist/configurator.d.ts} +0 -0
- /package/{declarations.d.ts → dist/declarations.d.ts} +0 -0
- /package/{ejsLoader.d.ts → dist/ejsLoader.d.ts} +0 -0
- /package/{eslint.config.d.ts → dist/eslint.config.d.ts} +0 -0
- /package/{helper.d.ts → dist/helper.d.ts} +0 -0
- /package/{index.d.ts → dist/index.d.ts} +0 -0
- /package/{index.html.ejs → dist/index.html.ejs} +0 -0
- /package/{jestSetup.d.ts → dist/jestSetup.d.ts} +0 -0
- /package/{plugins → dist/plugins}/HTMLTransformation.d.ts +0 -0
- /package/{plugins → dist/plugins}/InPlaceAssetsIntoHTML.d.ts +0 -0
- /package/{stylelintConfigurator.d.ts → dist/stylelintConfigurator.d.ts} +0 -0
- /package/{type.d.ts → dist/type.d.ts} +0 -0
- /package/{webpackConfigurator.d.ts → dist/webpackConfigurator.d.ts} +0 -0
|
@@ -144,4 +144,4 @@ export const getInitializedBrowser = async (replaceWindow = true) => {
|
|
|
144
144
|
if (browser.initialized) wrappedCallback();else onCreatedListener.push(wrappedCallback);
|
|
145
145
|
return promise;
|
|
146
146
|
};
|
|
147
|
-
export default getInitializedBrowser;
|
|
147
|
+
export default getInitializedBrowser;
|
|
@@ -21,7 +21,7 @@ import fileSystemSynchronous from 'fs';
|
|
|
21
21
|
import fileSystem, { lstat, readFile, unlink } from 'fs/promises';
|
|
22
22
|
import path, { basename, dirname, join, resolve } from 'path';
|
|
23
23
|
import { determineAssetType, determineModuleFilePath, determineModuleLocations, resolveAutoInjection, resolveBuildConfigurationFilePaths, resolveModulesInFolders, normalizeGivenInjection, normalizePaths } from "./helper.js";
|
|
24
|
-
import packageConfiguration from '
|
|
24
|
+
import packageConfiguration from '../package.json' with { type: 'json' };
|
|
25
25
|
import { SubConfigurationTypes } from "./type.js";
|
|
26
26
|
// endregion
|
|
27
27
|
const {
|
|
@@ -45,7 +45,7 @@ await importFilesystemAPI();
|
|
|
45
45
|
* @param environment - Environment variables to take into account.
|
|
46
46
|
* @returns Nothing.
|
|
47
47
|
*/
|
|
48
|
-
export const load = async (context, currentWorkingDirectory = process.cwd(), commandLineArguments = process.argv, webOptimizerPath = import.meta.dirname,
|
|
48
|
+
export const load = async (context, currentWorkingDirectory = process.cwd(), commandLineArguments = process.argv, webOptimizerPath = resolve(import.meta.dirname, '..'),
|
|
49
49
|
/*
|
|
50
50
|
NOTE: We have to avoid that some pre-processor removes this
|
|
51
51
|
assignment.
|
|
@@ -289,4 +289,4 @@ export const get = async () => {
|
|
|
289
289
|
if (!loadedConfiguration) loadedConfiguration = await load();
|
|
290
290
|
return loadedConfiguration;
|
|
291
291
|
};
|
|
292
|
-
export default get;
|
|
292
|
+
export default get;
|
|
@@ -42,7 +42,7 @@ for (const filePath of ['./tsconfig.eslint.json', './tsconfig.json', './tsconfig
|
|
|
42
42
|
let PROJECT_SPECIFIC_CONFIGURATION = [];
|
|
43
43
|
if (PACKAGE_CONFIGURATION.name !== 'weboptimizer') try {
|
|
44
44
|
// @ts-expect-error Need to create polymorphic type.
|
|
45
|
-
const config = await import('
|
|
45
|
+
const config = await import('../../../eslint.config.js');
|
|
46
46
|
const resolvedConfig = config.config ?? config.default ?? config.configuration ?? config;
|
|
47
47
|
PROJECT_SPECIFIC_CONFIGURATION = PROJECT_SPECIFIC_CONFIGURATION.concat(resolvedConfig);
|
|
48
48
|
} catch {
|
|
@@ -52,7 +52,7 @@ await importFilesystemAPI();
|
|
|
52
52
|
* @param environment - Environment variables to take into account.
|
|
53
53
|
* @returns Nothing.
|
|
54
54
|
*/
|
|
55
|
-
const main = async (context, currentWorkingDirectory = process.cwd(), commandLineArguments = process.argv, webOptimizerPath = import.meta.dirname,
|
|
55
|
+
const main = async (context, currentWorkingDirectory = process.cwd(), commandLineArguments = process.argv, webOptimizerPath = resolve(import.meta.dirname, '..'),
|
|
56
56
|
/*
|
|
57
57
|
NOTE: We have to avoid that some pre-processor removes this
|
|
58
58
|
assignment.
|
|
@@ -325,4 +325,4 @@ environment = eval('process.env')) => {
|
|
|
325
325
|
return clear;
|
|
326
326
|
};
|
|
327
327
|
if (import.meta.main) void main();
|
|
328
|
-
export default main;
|
|
328
|
+
export default main;
|
|
@@ -19,4 +19,4 @@ import { globalContext, optionalImport } from 'clientnode';
|
|
|
19
19
|
import { TextEncoder, TextDecoder } from 'util';
|
|
20
20
|
globalContext.TextEncoder = TextEncoder;
|
|
21
21
|
globalContext.TextDecoder = TextDecoder;
|
|
22
|
-
if (await optionalImport('jest-canvas-mock')) console.info('Canvas mocking module loaded.');
|
|
22
|
+
if (await optionalImport('jest-canvas-mock')) console.info('Canvas mocking module loaded.');
|
package/{type.js → dist/type.js}
RENAMED
|
@@ -813,11 +813,17 @@ if (configuration.path.configuration.json) try {
|
|
|
813
813
|
exports are never imported) would have its bundled modules tree-shaken away
|
|
814
814
|
completely - resulting for example in a test bundle without any registered
|
|
815
815
|
test.
|
|
816
|
+
|
|
817
|
+
NOTE: This applies to every command which runs the test bundle through
|
|
818
|
+
jest (with or without coverage instrumentation) - otherwise for example
|
|
819
|
+
"test:coverage" fails with "Cannot add a test after tests have started
|
|
820
|
+
running".
|
|
816
821
|
*/
|
|
822
|
+
const isJestTestRun = ['test', 'test:coverage', 'test:coverage:report'].includes(configuration.givenCommandLineArguments[2]);
|
|
817
823
|
const generatedBarrelModuleFilePaths = [];
|
|
818
824
|
const barrelledModuleFilePaths = [];
|
|
819
825
|
const normalizedEntryInjection = {};
|
|
820
|
-
for (const [chunkName, moduleIDs] of Object.entries(configuration.injection.entry.normalized)) if (
|
|
826
|
+
for (const [chunkName, moduleIDs] of Object.entries(configuration.injection.entry.normalized)) if (isJestTestRun && Array.isArray(moduleIDs) && moduleIDs.length > 1) {
|
|
821
827
|
const barrelModuleFilePath = resolve(configuration.path.context, `.__${convertToValidVariableName(chunkName)}__.barrel.mjs`);
|
|
822
828
|
await writeFile(barrelModuleFilePath, moduleIDs.map(moduleID => {
|
|
823
829
|
const specifier = stripLoader(moduleID);
|
|
@@ -972,7 +978,7 @@ export let webpackConfiguration = extend(true, {
|
|
|
972
978
|
*/
|
|
973
979
|
concatenateModules: configuration.givenCommandLineArguments[2] === 'serve' || undefined,
|
|
974
980
|
// region common chunks
|
|
975
|
-
splitChunks: extend(true, !configuration.injection.chunks || configuration.targetTechnology.payload === 'node' ||
|
|
981
|
+
splitChunks: extend(true, !configuration.injection.chunks || configuration.targetTechnology.payload === 'node' || isJestTestRun ? {
|
|
976
982
|
cacheGroups: {
|
|
977
983
|
default: false,
|
|
978
984
|
defaultVendors: false
|
|
@@ -1032,4 +1038,4 @@ void log.debug('Using webpack configuration:', util.inspect(webpackConfiguration
|
|
|
1032
1038
|
}));
|
|
1033
1039
|
|
|
1034
1040
|
// endregion
|
|
1035
|
-
export default webpackConfiguration;
|
|
1041
|
+
export default webpackConfiguration;
|
package/jest.json
CHANGED
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
"\\.((css)|(less)|(sass)|(scss))$": "identity-obj-proxy"
|
|
5
5
|
},
|
|
6
6
|
"rootDir": "../../",
|
|
7
|
-
"setupFilesAfterEnv": ["./node_modules/weboptimizer/jestSetup.js"],
|
|
7
|
+
"setupFilesAfterEnv": ["./node_modules/weboptimizer/dist/jestSetup.js"],
|
|
8
8
|
"testPathIgnorePatterns": ["^(.*[/])?testHelper([./].*)?$"]
|
|
9
9
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "weboptimizer",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.95-1",
|
|
4
4
|
"description": "A generic web optimizer, (module) bundler and development environment.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"webpack",
|
|
@@ -26,69 +26,50 @@
|
|
|
26
26
|
},
|
|
27
27
|
"repository": {
|
|
28
28
|
"type": "git",
|
|
29
|
-
"url": "https://github.com/thaibault/weboptimizer.git"
|
|
29
|
+
"url": "git+https://github.com/thaibault/weboptimizer.git"
|
|
30
30
|
},
|
|
31
31
|
"type": "module",
|
|
32
32
|
"exports": {
|
|
33
|
-
".": "
|
|
34
|
-
"./browser": "./browser.js",
|
|
35
|
-
"./browser.js": "./browser.js",
|
|
36
|
-
"./ejsLoader": "./ejsLoader.js",
|
|
37
|
-
"./ejsLoader.js": "./ejsLoader.js",
|
|
38
|
-
"./type": "./type.js",
|
|
39
|
-
"./type.js": "./type.js"
|
|
33
|
+
".": "./dist/index.js",
|
|
34
|
+
"./browser": "./dist/browser.js",
|
|
35
|
+
"./browser.js": "./dist/browser.js",
|
|
36
|
+
"./ejsLoader": "./dist/ejsLoader.js",
|
|
37
|
+
"./ejsLoader.js": "./dist/ejsLoader.js",
|
|
38
|
+
"./type": "./dist/type.js",
|
|
39
|
+
"./type.js": "./dist/type.js"
|
|
40
|
+
},
|
|
41
|
+
"bin": {
|
|
42
|
+
"weboptimizer": "dist/index.js"
|
|
40
43
|
},
|
|
41
|
-
"bin": "index.js",
|
|
42
44
|
"files": [
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"ejsLoader.d.ts",
|
|
49
|
-
"ejsLoader.js",
|
|
50
|
-
"eslint.config.d.ts",
|
|
51
|
-
"eslint.config.js",
|
|
52
|
-
"helper.d.ts",
|
|
53
|
-
"helper.js",
|
|
54
|
-
"index.d.ts",
|
|
55
|
-
"index.html.ejs",
|
|
56
|
-
"index.js",
|
|
45
|
+
"dist/*.d.ts",
|
|
46
|
+
"dist/*.js",
|
|
47
|
+
"dist/index.html.ejs",
|
|
48
|
+
"dist/plugins/*.d.ts",
|
|
49
|
+
"dist/plugins/*.js",
|
|
57
50
|
"jest.json",
|
|
58
|
-
"jestSetup.d.ts",
|
|
59
|
-
"jestSetup.js",
|
|
60
|
-
"plugins/HTMLTransformation.d.ts",
|
|
61
|
-
"plugins/HTMLTransformation.js",
|
|
62
|
-
"plugins/InPlaceAssetsIntoHTML.d.ts",
|
|
63
|
-
"plugins/InPlaceAssetsIntoHTML.js",
|
|
64
|
-
"stylelintConfigurator.d.ts",
|
|
65
|
-
"stylelintConfigurator.js",
|
|
66
51
|
"tsconfig.json",
|
|
67
52
|
"tsconfig.application.json",
|
|
68
|
-
"tsconfig.library.json"
|
|
69
|
-
"type.d.ts",
|
|
70
|
-
"type.js",
|
|
71
|
-
"webpackConfigurator.d.ts",
|
|
72
|
-
"webpackConfigurator.js"
|
|
53
|
+
"tsconfig.library.json"
|
|
73
54
|
],
|
|
74
55
|
"sideEffects": true,
|
|
75
56
|
"scripts": {
|
|
76
57
|
"build": "yarn build:types && yarn build:lint && yarn build:plain",
|
|
77
|
-
"build:copy-test-artefacts": "cd test/simple && shx touch yarn.lock && shx rm -rf node_modules && YARN_ENABLE_IMMUTABLE_INSTALLS=false yarn install; cd
|
|
78
|
-
"build:lint": " babel --extensions '.ts' --out-file eslint.config.js eslint.config.ts",
|
|
79
|
-
"build:plain": "
|
|
80
|
-
"build:test": " yarn clear && yarn build &&
|
|
81
|
-
"build:test:source-map": "yarn clear && yarn build &&
|
|
82
|
-
"build:types": "tsc --declaration --emitDeclarationOnly",
|
|
58
|
+
"build:copy-test-artefacts": "cd src/test/simple && shx touch yarn.lock && shx rm -rf node_modules && YARN_ENABLE_IMMUTABLE_INSTALLS=false yarn install; cd ../../../ && cd src/test/scss && shx touch yarn.lock && shx rm -rf node_modules && YARN_ENABLE_IMMUTABLE_INSTALLS=false yarn install; cd ../../../ && shx rm -rf node_modules/weboptimizer src/test/simple/node_modules/weboptimizer src/test/scss/node_modules/weboptimizer && shx mkdir -p node_modules/weboptimizer src/test/simple/node_modules/weboptimizer src/test/scss/node_modules/weboptimizer && copyCommand='shx cp -r dist *.json' && $copyCommand node_modules/weboptimizer/ && $copyCommand src/test/simple/node_modules/weboptimizer/ && $copyCommand src/test/scss/node_modules/weboptimizer/",
|
|
59
|
+
"build:lint": " babel --extensions '.ts' --out-file dist/eslint.config.js src/eslint.config.ts",
|
|
60
|
+
"build:plain": "babel --extensions '.ts' --ignore 'src/**/*.d.ts,src/eslint.config.ts,src/test/**' --copy-files --no-copy-ignored --out-dir dist src && shx cp src/declarations.d.ts dist/ && shx chmod +x dist/index.js && shx sed -i 's/(#!\\\\/usr\\\\/bin\\\\/env )babel-(node)/$1$2/' dist/index.js 1>/dev/null",
|
|
61
|
+
"build:test": " yarn clear && yarn build && yarn build:copy-test-artefacts && babel --extensions '.ts' --ignore 'src/test/**/*.d.ts,src/test/scss/**,src/test/simple/**' --out-dir dist/test src/test",
|
|
62
|
+
"build:test:source-map": "yarn clear && yarn build && yarn build:copy-test-artefacts && babel --extensions '.ts' --ignore 'src/test/**/*.d.ts,src/test/scss/**,src/test/simple/**' --source-maps inline --out-dir dist/test src/test",
|
|
63
|
+
"build:types": "tsc --declaration --emitDeclarationOnly --rootDir src --declarationDir dist",
|
|
83
64
|
"check": "yarn check:types && yarn lint",
|
|
84
65
|
"check:types": "tsc --noEmit",
|
|
85
|
-
"clear": "shx rm -rf apiDocumentation
|
|
86
|
-
"document": "yarn build:plain && jsdoc --package ./package.json --readme ./readme.md --destination apiDocumentation
|
|
66
|
+
"clear": "shx rm -rf apiDocumentation dist 'src/test/*/*.d.ts' 'src/test/**/yarn.lock' 'src/test/**/node_modules' '*.log' node_modules/weboptimizer .coverage .nyc_output",
|
|
67
|
+
"document": "yarn build:plain && jsdoc --package ./package.json --readme ./readme.md --destination apiDocumentation dist/*.js",
|
|
87
68
|
"lint": "yarn build:lint && yarn lint:base",
|
|
88
|
-
"lint:base": "eslint --no-warn-ignored
|
|
69
|
+
"lint:base": "eslint --config dist/eslint.config.js --no-warn-ignored src/*.ts src/*/*.ts src/test/*/*.ts",
|
|
89
70
|
"prepare": "yarn build",
|
|
90
71
|
"prettify": "yarn lint:base --fix || true",
|
|
91
|
-
"test": "yarn build:test && node --experimental-vm-modules node_modules/.bin/jest --config ./weboptimizerJest.json --noStackTrace --root-dir './' --test-regex '/test/.+\\\\.js$' test/browser.js test/configurator.js test/ejsLoader.js test/helper.js test/stylelintConfigurator.js test/index.js test/webpackConfigurator.js",
|
|
72
|
+
"test": "yarn build:test && node --experimental-vm-modules node_modules/.bin/jest --config ./weboptimizerJest.json --noStackTrace --root-dir './' --test-regex '/dist/test/.+\\\\.js$' dist/test/browser.js dist/test/configurator.js dist/test/ejsLoader.js dist/test/helper.js dist/test/stylelintConfigurator.js dist/test/index.js dist/test/webpackConfigurator.js",
|
|
92
73
|
"test:coverage": "yarn test --ci --coverage --coverageReporters=text --coverageReporters=text-summary --silent --testLocationInResults",
|
|
93
74
|
"test:coverage:report": "yarn test:coverage --coverageDirectory=.coverage --coverageReporters=lcov --outputFile=lcov.info",
|
|
94
75
|
"test:watch": "yarn test --watch",
|
|
@@ -106,7 +87,7 @@
|
|
|
106
87
|
"babel-loader": "^10.1.1",
|
|
107
88
|
"babel-plugin-polyfill-corejs3": "^1.0.0",
|
|
108
89
|
"babel-plugin-transform-rewrite-imports": "^1.5.4",
|
|
109
|
-
"clientnode": "4.0.
|
|
90
|
+
"clientnode": "4.0.1526",
|
|
110
91
|
"core-js": "^3.51.0",
|
|
111
92
|
"ejs": "^7.0.2",
|
|
112
93
|
"exports-loader": "^5.0.0",
|
|
@@ -133,7 +114,7 @@
|
|
|
133
114
|
"@types/html-minifier": "^4.0.6",
|
|
134
115
|
"@types/html-minifier-terser": "^7.0.2",
|
|
135
116
|
"@types/imagemin": "^9.0.1",
|
|
136
|
-
"@types/node": "^26.6.
|
|
117
|
+
"@types/node": "^26.6.6",
|
|
137
118
|
"@types/postcss-import": "^14.0.3",
|
|
138
119
|
"@types/postcss-url": "^10.0.4",
|
|
139
120
|
"@types/webpack-env": "^1.18.8",
|
|
@@ -168,7 +149,7 @@
|
|
|
168
149
|
"terser-webpack-plugin": "^5.6.1",
|
|
169
150
|
"typescript-eslint": "^8.72.1",
|
|
170
151
|
"typescript-plugin-css-modules": "^5.3.0",
|
|
171
|
-
"web-documentation": "^1.0.
|
|
152
|
+
"web-documentation": "^1.0.68",
|
|
172
153
|
"workbox-webpack-plugin": "^7.4.1"
|
|
173
154
|
},
|
|
174
155
|
"peerDependencies": {
|
|
@@ -464,7 +445,7 @@
|
|
|
464
445
|
"arguments": [
|
|
465
446
|
"--config",
|
|
466
447
|
{
|
|
467
|
-
"__evaluate__": "`${webOptimizerPath}/webpackConfigurator.js`"
|
|
448
|
+
"__evaluate__": "`${webOptimizerPath}/dist/webpackConfigurator.js`"
|
|
468
449
|
},
|
|
469
450
|
"--progress"
|
|
470
451
|
],
|
|
@@ -516,7 +497,7 @@
|
|
|
516
497
|
},
|
|
517
498
|
"--config",
|
|
518
499
|
{
|
|
519
|
-
"__evaluate__": "path.relative(self.path.context, path.resolve(webOptimizerPath, 'stylelintConfigurator.js'))"
|
|
500
|
+
"__evaluate__": "path.relative(self.path.context, path.resolve(webOptimizerPath, 'dist', 'stylelintConfigurator.js'))"
|
|
520
501
|
}
|
|
521
502
|
],
|
|
522
503
|
"command": "stylelint",
|
|
@@ -526,7 +507,7 @@
|
|
|
526
507
|
"arguments": [
|
|
527
508
|
"--config",
|
|
528
509
|
{
|
|
529
|
-
"__evaluate__": "`'${webOptimizerPath}/eslint.config.js'`"
|
|
510
|
+
"__evaluate__": "`'${webOptimizerPath}/dist/eslint.config.js'`"
|
|
530
511
|
},
|
|
531
512
|
"--ignore-pattern",
|
|
532
513
|
{
|
|
@@ -550,7 +531,7 @@
|
|
|
550
531
|
"serve",
|
|
551
532
|
"--config",
|
|
552
533
|
{
|
|
553
|
-
"__evaluate__": "`'${webOptimizerPath}/webpackConfigurator.js'`"
|
|
534
|
+
"__evaluate__": "`'${webOptimizerPath}/dist/webpackConfigurator.js'`"
|
|
554
535
|
},
|
|
555
536
|
"--progress"
|
|
556
537
|
],
|
|
@@ -749,7 +730,7 @@
|
|
|
749
730
|
"scriptLoading": "module",
|
|
750
731
|
"template": {
|
|
751
732
|
"filePath": {
|
|
752
|
-
"__evaluate__": "`${filesystem.isFileSync(path.resolve(self.path.source.base, `${self.files.defaultHTML.filename}.ejs`)) ? path.resolve(self.path.source.base, `${self.files.defaultHTML.filename}.ejs`) : path.resolve(webOptimizerPath, 'index.html.ejs')}`"
|
|
733
|
+
"__evaluate__": "`${filesystem.isFileSync(path.resolve(self.path.source.base, `${self.files.defaultHTML.filename}.ejs`)) ? path.resolve(self.path.source.base, `${self.files.defaultHTML.filename}.ejs`) : path.resolve(webOptimizerPath, 'dist', 'index.html.ejs')}`"
|
|
753
734
|
},
|
|
754
735
|
"postCompileOptions": {
|
|
755
736
|
"_with": false,
|
package/readme.md
CHANGED
|
@@ -322,4 +322,4 @@ package.json (see the API-Documentation, link above, for more details):
|
|
|
322
322
|
2. Set Working directory:
|
|
323
323
|
/PATH/TO/PROJECT
|
|
324
324
|
3. Set configuration file path:
|
|
325
|
-
/PATH/TO/PROJECT/node_modules/weboptimizer/eslint.config.js
|
|
325
|
+
/PATH/TO/PROJECT/node_modules/weboptimizer/dist/eslint.config.js
|
package/tsconfig.json
CHANGED
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|