sxs 2025.0.1__tar.gz → 2025.0.2__tar.gz
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.
- {sxs-2025.0.1 → sxs-2025.0.2}/.github/workflows/build.yml +1 -1
- {sxs-2025.0.1 → sxs-2025.0.2}/CITATION.cff +2 -2
- {sxs-2025.0.1 → sxs-2025.0.2}/PKG-INFO +2 -2
- {sxs-2025.0.1 → sxs-2025.0.2}/pyproject.toml +2 -1
- sxs-2025.0.2/sxs/__version__.py +1 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/handlers.py +20 -1
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/format_handlers/lvc.py +6 -5
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/format_handlers/rotating_paired_diff_multishuffle_bzip2.py +6 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/tests/conftest.py +1 -1
- sxs-2025.0.1/sxs/__version__.py +0 -1
- {sxs-2025.0.1 → sxs-2025.0.2}/.codecov.yml +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/.github/dependabot.yml +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/.github/scripts/parse_bump_rule.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/.github/workflows/pr_rtd_link.yml +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/.gitignore +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/.readthedocs.yaml +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/LICENSE +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/README.md +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/docs/api/catalog.md +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/docs/api/horizons.md +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/docs/api/load.md +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/docs/api/metadata.md +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/docs/api/simulation.md +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/docs/api/simulations.md +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/docs/api/time_series.md +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/docs/api/waveforms.md +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/docs/html/main.html +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/docs/images/favicon.ico +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/docs/index.md +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/docs/javascript/mathjax.js +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/docs/julia.md +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/docs/mathematica.md +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/docs/stylesheets/extra.css +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/docs/tutorials/00-Introduction.ipynb +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/docs/tutorials/01-Simulations_and_Metadata.ipynb +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/docs/tutorials/02-Simulation.ipynb +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/docs/tutorials/03-Horizons.ipynb +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/docs/tutorials/04-Waveforms.ipynb +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/docs/tutorials/05-PreprocessingForFFTs.ipynb +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/mkdocs.yml +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/__init__.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/catalog/__init__.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/catalog/catalog.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/catalog/create.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/catalog/description.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/horizons/__init__.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/horizons/spec_horizons_h5.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/horizons/xor_multishuffle_bzip2.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/julia/GWFrames.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/julia/__init__.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/juliapkg.json +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/metadata/__init__.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/metadata/metadata.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/metadata/metric.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/simulations/__init__.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/simulations/local.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/simulations/simulation.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/simulations/simulations.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/time_series.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/__init__.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/bitwise.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/decimation/__init__.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/decimation/greedy_spline.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/decimation/linear_bisection.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/decimation/peak_greed.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/decimation/suppression.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/dicts.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/downloads.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/files.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/formats.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/inspire.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/lvcnr/__init__.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/lvcnr/comparisons.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/lvcnr/conversion.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/lvcnr/dataset.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/lvcnr/horizons.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/lvcnr/metadata.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/lvcnr/waveform_amp_phase.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/lvcnr/waveforms.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/monotonicity.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/pretty_print.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/references/__init__.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/references/ads.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/references/arxiv.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/references/fairchild_report.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/references/inspire.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/references/journal_abbreviations.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/references/references.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/select.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/smooth_functions.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/string_converters.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/sxs_directories.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/sxs_identifiers.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/url.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/__init__.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/alignment.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/format_handlers/__init__.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/format_handlers/grathena.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/format_handlers/nrar.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/format_handlers/rotating_paired_xor_multishuffle_bzip2.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/format_handlers/spectre_cce_v1.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/memory.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/mode_utilities.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/transformations.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/waveform_grid.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/waveform_mixin.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/waveform_modes.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/waveform_signal.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/zenodo/__init__.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/zenodo/api/__init__.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/zenodo/api/deposit.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/zenodo/api/login.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/zenodo/api/records.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/zenodo/catalog.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/zenodo/creators.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/zenodo/simannex.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/sxs/zenodo/surrogatemodeling.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/tests/__init__.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/tests/test_catalog.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/tests/test_horizons.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/tests/test_julia.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/tests/test_loader.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/tests/test_metadata.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/tests/test_simulation.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/tests/test_time_series.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/tests/test_transformations.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/tests/test_utilities.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/tests/test_waveform_rotations.py +0 -0
- {sxs-2025.0.1 → sxs-2025.0.2}/tests/test_waveforms.py +0 -0
|
@@ -47,7 +47,7 @@ jobs:
|
|
|
47
47
|
if: ${{ env.skipping_build_and_test_replicate != 'true' }}
|
|
48
48
|
uses: actions/cache@v4
|
|
49
49
|
with:
|
|
50
|
-
key: sxs-${{ runner.os }}-
|
|
50
|
+
key: sxs-${{ runner.os }}-2 # Increment this number whenever the cached files should change
|
|
51
51
|
path: |
|
|
52
52
|
${{ runner.os == 'Linux' && '/home/runner/.cache/sxs' || runner.os == 'Windows' && 'C:\Users\runneradmin\.sxs\cache' || '/Users/runner/.sxs/cache' }}
|
|
53
53
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sxs
|
|
3
|
-
Version: 2025.0.
|
|
3
|
+
Version: 2025.0.2
|
|
4
4
|
Summary: Interface to data produced by the Simulating eXtreme Spacetimes collaboration
|
|
5
5
|
Project-URL: Homepage, https://github.com/sxs-collaboration/sxs
|
|
6
6
|
Project-URL: Documentation, https://sxs.readthedocs.io/
|
|
@@ -46,7 +46,7 @@ Requires-Dist: quaternionic>=1.0.15
|
|
|
46
46
|
Requires-Dist: requests>=2.24.0
|
|
47
47
|
Requires-Dist: scipy>=1.13
|
|
48
48
|
Requires-Dist: spherical>=1.0.15
|
|
49
|
-
Requires-Dist: sxscatalog>=3.0.
|
|
49
|
+
Requires-Dist: sxscatalog>=3.0.0a26
|
|
50
50
|
Requires-Dist: tqdm>=4.63.1
|
|
51
51
|
Requires-Dist: urllib3>=1.25.10
|
|
52
52
|
Provides-Extra: docs
|
|
@@ -18,7 +18,7 @@ classifiers = [
|
|
|
18
18
|
"Topic :: Scientific/Engineering :: Astronomy"
|
|
19
19
|
]
|
|
20
20
|
dependencies = [
|
|
21
|
-
"sxscatalog >=3.0.
|
|
21
|
+
"sxscatalog >=3.0.0a26",
|
|
22
22
|
"numpy >=1.25",
|
|
23
23
|
"scipy >=1.13",
|
|
24
24
|
"numba >=0.55; implementation_name == 'cpython'",
|
|
@@ -73,6 +73,7 @@ path = "sxs/__version__.py"
|
|
|
73
73
|
|
|
74
74
|
[tool.hatch.envs.default]
|
|
75
75
|
dependencies = [
|
|
76
|
+
"ipython",
|
|
76
77
|
"pytest",
|
|
77
78
|
"pytest-cov",
|
|
78
79
|
"pytest-forked >=1.3.0",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "2025.0.2"
|
|
@@ -237,7 +237,7 @@ def load(location, download=None, cache=None, progress=None, truepath=None, **kw
|
|
|
237
237
|
import pathlib
|
|
238
238
|
import urllib.request
|
|
239
239
|
from . import Simulations, Simulation, read_config, sxs_directory, Catalog
|
|
240
|
-
from .utilities import url, download_file, sxs_path_to_system_path, sxs_id_version_lev_exact_re, lev_path_re
|
|
240
|
+
from .utilities import url, download_file, sxs_path_to_system_path, sxs_id_version_lev_exact_re, lev_path_re, sxs_identifier_re
|
|
241
241
|
|
|
242
242
|
# Note: `download` and/or `cache` may still be `None` after this
|
|
243
243
|
if download is None:
|
|
@@ -294,11 +294,30 @@ def load(location, download=None, cache=None, progress=None, truepath=None, **kw
|
|
|
294
294
|
local=kwargs.get("local", False),
|
|
295
295
|
annex_dir=kwargs.get("annex_dir", None)
|
|
296
296
|
)
|
|
297
|
+
# If we chop off any "/LevN", and it's in the simulations, load it as a simulation
|
|
297
298
|
if lev_path_re.sub("", location) in simulations:
|
|
298
299
|
return Simulation(
|
|
299
300
|
location, download=download, cache=cache, progress=progress, **kwargs
|
|
300
301
|
)
|
|
301
302
|
|
|
303
|
+
# Now we look for a file in `simulations`
|
|
304
|
+
if sxs_identifier_re.match(location):
|
|
305
|
+
split_location = sxs_identifier_re.split(location)
|
|
306
|
+
# Currently we can only handle unversioned SXS ID files
|
|
307
|
+
if split_location[5] is None:
|
|
308
|
+
sxs_id = split_location[1]
|
|
309
|
+
file = split_location[-1].lstrip("/").lstrip("\\")
|
|
310
|
+
if sxs_id in simulations:
|
|
311
|
+
simulation = simulations[sxs_id]
|
|
312
|
+
if "files" in simulation:
|
|
313
|
+
file_info = simulation["files"][file]
|
|
314
|
+
location = file_info["link"]
|
|
315
|
+
truepath = truepath or (pathlib.Path(sxs_id) / file)
|
|
316
|
+
return load(
|
|
317
|
+
location, truepath=truepath,
|
|
318
|
+
download=download, cache=cache, progress=progress, **kwargs
|
|
319
|
+
)
|
|
320
|
+
|
|
302
321
|
# Try to find an appropriate SXS file in the catalog
|
|
303
322
|
catalog = Catalog.load(download=download)
|
|
304
323
|
selections = catalog.select_files(location)
|
|
@@ -36,11 +36,12 @@ def to_lvc_conventions(
|
|
|
36
36
|
):
|
|
37
37
|
r"""Return SXS waveform in LVC conventions.
|
|
38
38
|
|
|
39
|
-
This is the function underpinning `
|
|
40
|
-
that function is a
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
outputs, see that
|
|
39
|
+
This is the function underpinning the `to_lvk` method of the
|
|
40
|
+
various `Simulation` types. Essentially, that function is a
|
|
41
|
+
fairly thin wrapper around this one; it just loads the `h` and
|
|
42
|
+
`horizons` data and passes it to this function. For explanation
|
|
43
|
+
of what this function does, the inputs, and outputs, see that
|
|
44
|
+
function's docstring.
|
|
44
45
|
|
|
45
46
|
"""
|
|
46
47
|
if t_ref is None and f_ref is None:
|
|
@@ -413,6 +413,12 @@ def load(
|
|
|
413
413
|
raise ValueError(message)
|
|
414
414
|
|
|
415
415
|
file_name_str = str(file_name)
|
|
416
|
+
if file_name_str.endswith(".json"):
|
|
417
|
+
# This is just a JSON file with the "sxs_format" key, not an H5 file
|
|
418
|
+
# with the data in it. Just return the JSON data.
|
|
419
|
+
from ...handlers import JSONHandler
|
|
420
|
+
return JSONHandler.load(file_name_str)
|
|
421
|
+
|
|
416
422
|
group = kwargs.get("group", None)
|
|
417
423
|
if ".h5" in file_name_str and not file_name_str.endswith(".h5"):
|
|
418
424
|
file_name_str, group = file_name_str.split(".h5")
|
|
@@ -29,7 +29,7 @@ GITHUB_ACTIONS_MACOS = (
|
|
|
29
29
|
# will work adequately. Note that if macos tests are failing, it may be
|
|
30
30
|
# time to increment the cache version number in .github/workflows/build.yml;
|
|
31
31
|
# try that before re-enabling this decorator.
|
|
32
|
-
if
|
|
32
|
+
if GITHUB_ACTIONS_MACOS:
|
|
33
33
|
skip_macOS_GH_actions_downloads = pytest.mark.skip(
|
|
34
34
|
reason="macOS runners on GitHub Actions have connectivity problems"
|
|
35
35
|
)
|
sxs-2025.0.1/sxs/__version__.py
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "2025.0.1"
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|