plain 0.51.0__tar.gz → 0.52.1__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.
- {plain-0.51.0 → plain-0.52.1}/PKG-INFO +1 -1
- {plain-0.51.0 → plain-0.52.1}/plain/CHANGELOG.md +23 -0
- {plain-0.51.0 → plain-0.52.1}/plain/cli/changelog.py +39 -6
- {plain-0.51.0 → plain-0.52.1}/plain/cli/help.py +2 -2
- {plain-0.51.0 → plain-0.52.1}/plain/debug.py +4 -3
- {plain-0.51.0 → plain-0.52.1}/pyproject.toml +5 -1
- {plain-0.51.0 → plain-0.52.1}/.gitignore +0 -0
- {plain-0.51.0 → plain-0.52.1}/LICENSE +0 -0
- {plain-0.51.0 → plain-0.52.1}/README.md +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/README.md +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/__main__.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/assets/README.md +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/assets/__init__.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/assets/compile.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/assets/finders.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/assets/fingerprints.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/assets/urls.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/assets/views.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/chores/README.md +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/chores/__init__.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/chores/registry.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/cli/README.md +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/cli/__init__.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/cli/build.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/cli/chores.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/cli/core.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/cli/docs.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/cli/formatting.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/cli/output.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/cli/preflight.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/cli/print.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/cli/registry.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/cli/scaffold.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/cli/settings.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/cli/shell.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/cli/startup.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/cli/urls.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/cli/utils.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/csrf/README.md +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/csrf/middleware.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/csrf/views.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/exceptions.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/forms/README.md +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/forms/__init__.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/forms/boundfield.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/forms/exceptions.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/forms/fields.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/forms/forms.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/http/README.md +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/http/__init__.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/http/cookie.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/http/multipartparser.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/http/request.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/http/response.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/internal/__init__.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/internal/files/__init__.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/internal/files/base.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/internal/files/locks.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/internal/files/move.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/internal/files/temp.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/internal/files/uploadedfile.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/internal/files/uploadhandler.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/internal/files/utils.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/internal/handlers/__init__.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/internal/handlers/base.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/internal/handlers/exception.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/internal/handlers/wsgi.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/internal/middleware/__init__.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/internal/middleware/headers.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/internal/middleware/https.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/internal/middleware/slash.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/json.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/logs/README.md +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/logs/__init__.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/logs/configure.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/logs/loggers.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/logs/utils.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/packages/README.md +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/packages/__init__.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/packages/config.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/packages/registry.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/paginator.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/preflight/README.md +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/preflight/__init__.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/preflight/files.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/preflight/messages.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/preflight/registry.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/preflight/security.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/preflight/urls.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/runtime/README.md +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/runtime/__init__.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/runtime/global_settings.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/runtime/user_settings.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/signals/README.md +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/signals/__init__.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/signals/dispatch/__init__.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/signals/dispatch/dispatcher.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/signals/dispatch/license.txt +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/signing.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/templates/README.md +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/templates/__init__.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/templates/core.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/templates/jinja/__init__.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/templates/jinja/environments.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/templates/jinja/extensions.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/templates/jinja/filters.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/templates/jinja/globals.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/test/README.md +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/test/__init__.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/test/client.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/test/encoding.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/test/exceptions.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/urls/README.md +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/urls/__init__.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/urls/converters.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/urls/exceptions.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/urls/patterns.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/urls/resolvers.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/urls/routers.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/urls/utils.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/utils/README.md +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/utils/__init__.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/utils/cache.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/utils/crypto.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/utils/datastructures.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/utils/dateparse.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/utils/deconstruct.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/utils/decorators.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/utils/duration.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/utils/encoding.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/utils/functional.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/utils/hashable.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/utils/html.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/utils/http.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/utils/inspect.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/utils/ipv6.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/utils/itercompat.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/utils/module_loading.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/utils/regex_helper.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/utils/safestring.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/utils/text.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/utils/timesince.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/utils/timezone.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/utils/tree.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/validators.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/views/README.md +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/views/__init__.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/views/base.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/views/csrf.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/views/errors.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/views/exceptions.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/views/forms.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/views/objects.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/views/redirect.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/views/templates.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/plain/wsgi.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/tests/.gitignore +0 -0
- {plain-0.51.0 → plain-0.52.1}/tests/app/.gitignore +0 -0
- {plain-0.51.0 → plain-0.52.1}/tests/app/settings.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/tests/app/test/__init__.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/tests/app/test/default_settings.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/tests/app/urls.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/tests/conftest.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/tests/test_cli.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/tests/test_runtime.py +0 -0
- {plain-0.51.0 → plain-0.52.1}/tests/test_wsgi.py +0 -0
@@ -1,5 +1,28 @@
|
|
1
1
|
# plain changelog
|
2
2
|
|
3
|
+
## [0.52.1](https://github.com/dropseed/plain/releases/plain@0.52.1) (2025-06-27)
|
4
|
+
|
5
|
+
### What's changed
|
6
|
+
|
7
|
+
- Fixed `plain help` output on newer versions of Click by switching from `MultiCommand` to `Group` when determining sub-commands ([9482e42](https://github.com/dropseed/plain/commit/9482e421ac408ac043d341edda3dba9f27694f08))
|
8
|
+
|
9
|
+
### Upgrade instructions
|
10
|
+
|
11
|
+
- No changes required
|
12
|
+
|
13
|
+
## [0.52.0](https://github.com/dropseed/plain/releases/plain@0.52.0) (2025-06-26)
|
14
|
+
|
15
|
+
### What's changed
|
16
|
+
|
17
|
+
- Added `plain-changelog` as a standalone executable so you can view changelogs without importing the full framework ([e4e7324](https://github.com/dropseed/plain/commit/e4e7324cd284c800ff957933748d6639615cbea6))
|
18
|
+
- Removed the runtime dependency on the `packaging` library by replacing it with an internal version-comparison helper ([e4e7324](https://github.com/dropseed/plain/commit/e4e7324cd284c800ff957933748d6639615cbea6))
|
19
|
+
- Improved the error message when a package changelog cannot be found, now showing the path that was looked up ([f3c82bb](https://github.com/dropseed/plain/commit/f3c82bb59e07c1bddbdb2557f2043e039c1cd1e9))
|
20
|
+
- Fixed an f-string issue that broke `plain.debug.dd` on Python 3.11 ([ed24276](https://github.com/dropseed/plain/commit/ed24276a12191e4c8903369002dd32b69eb358b3))
|
21
|
+
|
22
|
+
### Upgrade instructions
|
23
|
+
|
24
|
+
- No changes required
|
25
|
+
|
3
26
|
## [0.51.0](https://github.com/dropseed/plain/releases/plain@0.51.0) (2025-06-24)
|
4
27
|
|
5
28
|
### What's changed
|
@@ -3,11 +3,43 @@ from importlib.util import find_spec
|
|
3
3
|
from pathlib import Path
|
4
4
|
|
5
5
|
import click
|
6
|
-
from packaging.version import Version
|
7
6
|
|
8
7
|
from .output import style_markdown
|
9
8
|
|
10
9
|
|
10
|
+
def parse_version(version_str):
|
11
|
+
"""Parse a version string into a tuple of integers for comparison."""
|
12
|
+
# Remove 'v' prefix if present and split by dots
|
13
|
+
clean_version = version_str.lstrip("v")
|
14
|
+
parts = []
|
15
|
+
for part in clean_version.split("."):
|
16
|
+
# Extract numeric part from each segment
|
17
|
+
numeric_part = re.match(r"\d+", part)
|
18
|
+
if numeric_part:
|
19
|
+
parts.append(int(numeric_part.group()))
|
20
|
+
else:
|
21
|
+
parts.append(0)
|
22
|
+
return tuple(parts)
|
23
|
+
|
24
|
+
|
25
|
+
def compare_versions(v1, v2):
|
26
|
+
"""Compare two version strings. Returns -1 if v1 < v2, 0 if equal, 1 if v1 > v2."""
|
27
|
+
parsed_v1 = parse_version(v1)
|
28
|
+
parsed_v2 = parse_version(v2)
|
29
|
+
|
30
|
+
# Pad shorter version with zeros
|
31
|
+
max_len = max(len(parsed_v1), len(parsed_v2))
|
32
|
+
parsed_v1 += (0,) * (max_len - len(parsed_v1))
|
33
|
+
parsed_v2 += (0,) * (max_len - len(parsed_v2))
|
34
|
+
|
35
|
+
if parsed_v1 < parsed_v2:
|
36
|
+
return -1
|
37
|
+
elif parsed_v1 > parsed_v2:
|
38
|
+
return 1
|
39
|
+
else:
|
40
|
+
return 0
|
41
|
+
|
42
|
+
|
11
43
|
@click.command("changelog")
|
12
44
|
@click.argument("package_label")
|
13
45
|
@click.option("--from", "from_version", help="Show entries from this version onwards")
|
@@ -28,7 +60,9 @@ def changelog(package_label, from_version, to_version):
|
|
28
60
|
|
29
61
|
changelog_path = package_path / "CHANGELOG.md"
|
30
62
|
if not changelog_path.exists():
|
31
|
-
raise click.ClickException(
|
63
|
+
raise click.ClickException(
|
64
|
+
f"Changelog not found for {package_label} ({changelog_path})"
|
65
|
+
)
|
32
66
|
|
33
67
|
content = changelog_path.read_text()
|
34
68
|
|
@@ -52,7 +86,7 @@ def changelog(package_label, from_version, to_version):
|
|
52
86
|
entries.append((current_version, current_lines))
|
53
87
|
|
54
88
|
def version_found(version):
|
55
|
-
return any(
|
89
|
+
return any(compare_versions(v, version) == 0 for v, _ in entries)
|
56
90
|
|
57
91
|
if from_version and not version_found(from_version):
|
58
92
|
click.secho(
|
@@ -63,10 +97,9 @@ def changelog(package_label, from_version, to_version):
|
|
63
97
|
|
64
98
|
selected_lines = []
|
65
99
|
for version, lines in entries:
|
66
|
-
|
67
|
-
if from_version and v <= Version(from_version):
|
100
|
+
if from_version and compare_versions(version, from_version) <= 0:
|
68
101
|
continue
|
69
|
-
if to_version and
|
102
|
+
if to_version and compare_versions(version, to_version) > 0:
|
70
103
|
continue
|
71
104
|
selected_lines.extend(lines)
|
72
105
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import click
|
2
|
-
from click.core import
|
2
|
+
from click.core import Group
|
3
3
|
|
4
4
|
|
5
5
|
@click.command("help")
|
@@ -18,7 +18,7 @@ def help_cmd(ctx):
|
|
18
18
|
click.secho("-" * len(title), fg="green")
|
19
19
|
click.echo(sub_ctx.get_help())
|
20
20
|
|
21
|
-
if isinstance(cmd,
|
21
|
+
if isinstance(cmd, Group):
|
22
22
|
for name in cmd.list_commands(sub_ctx):
|
23
23
|
click.echo()
|
24
24
|
sub_cmd = cmd.get_command(sub_ctx, name)
|
@@ -13,13 +13,14 @@ def dd(*objs):
|
|
13
13
|
Dump the object and raise a ResponseException with the dump as the response content.
|
14
14
|
"""
|
15
15
|
|
16
|
-
|
16
|
+
print_objs = "\n".join([pformat(obj) for obj in objs])
|
17
|
+
print(f"Dumping objects:\n{print_objs}")
|
17
18
|
|
18
|
-
|
19
|
+
html_objs = [
|
19
20
|
Markup("<pre><code>") + escape(pformat(obj)) + Markup("</code></pre>")
|
20
21
|
for obj in objs
|
21
22
|
]
|
22
|
-
combined_dump_str = Markup("\n\n").join(
|
23
|
+
combined_dump_str = Markup("\n\n").join(html_objs)
|
23
24
|
|
24
25
|
response = Response()
|
25
26
|
response.status_code = 500
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "plain"
|
3
|
-
version = "0.
|
3
|
+
version = "0.52.1"
|
4
4
|
description = "A web framework for building products with Python."
|
5
5
|
authors = [{name = "Dave Gaeddert", email = "dave.gaeddert@dropseed.dev"}]
|
6
6
|
readme = "README.md"
|
@@ -13,6 +13,10 @@ requires-python = ">=3.11"
|
|
13
13
|
[project.scripts]
|
14
14
|
plain = "plain.cli.core:cli"
|
15
15
|
|
16
|
+
# Make this directly available without loading Plain,
|
17
|
+
# for use in upgrade scripts.
|
18
|
+
plain-changelog = "plain.cli.changelog:changelog"
|
19
|
+
|
16
20
|
[tool.uv]
|
17
21
|
dev-dependencies = [
|
18
22
|
"pytest>=8.0.0",
|
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
|
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
|