loop-memory 0.4.4__tar.gz → 0.4.5__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.
- {loop_memory-0.4.4 → loop_memory-0.4.5}/PKG-INFO +1 -1
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/__init__.py +11 -1
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory.egg-info/PKG-INFO +1 -1
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory.egg-info/SOURCES.txt +1 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/pyproject.toml +1 -1
- loop_memory-0.4.5/tests/test_package_version.py +97 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/LICENSE +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/README.md +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/backends/__init__.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/backends/embedding.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/backends/sentence_embedder.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/backends/vector_store.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/cli/__init__.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/cli/_common.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/cli/commands/__init__.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/cli/commands/cognitive.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/cli/commands/diag.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/cli/commands/graph.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/cli/commands/hooks.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/cli/commands/read.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/cli/commands/rules.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/cli/commands/serve.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/cli/commands/write.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/cli/main.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/engine/__init__.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/engine/loop.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/engine/reflect.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/examples/__init__.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/examples/demo.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/export/__init__.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/export/memory_md.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/graph/__init__.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/graph/build.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/graph/extract.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/ingest/__init__.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/ingest/loader.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/ingest/pipeline.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/jobs/__init__.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/jobs/cognitive.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/jobs/compact.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/jobs/consolidate.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/jobs/contradiction.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/jobs/evolution.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/jobs/graph.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/jobs/llm_compact_pass.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/jobs/llm_consolidate.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/jobs/scheduler.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/llm/__init__.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/llm/base.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/llm/openai_adapter.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/llm/providers.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/mcp/__init__.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/memory/__init__.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/memory/types.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/privacy/__init__.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/privacy/private.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/privacy/redact.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/py.typed +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/sdk.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/sdk_extensions.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/security/__init__.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/security/secrets.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/serve/__init__.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/serve/app.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/serve/handlers.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/serve/routes/_shared.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/serve/routes/admin.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/serve/routes/cognitive.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/serve/routes/export.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/serve/routes/graph.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/serve/routes/insights.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/serve/routes/memories.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/serve/routes/sessions.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/serve/routes/system.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/serve/routes/wiki.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/serve/static/__init__.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/serve/static/index.html +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/serve/watcher.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/storage/__init__.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/storage/retrieval.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/storage/sqlite_store.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/wiki/__init__.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/wiki/backfill.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/wiki/classifier.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/wiki/prompts.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory/wiki/scope.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory.egg-info/dependency_links.txt +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory.egg-info/entry_points.txt +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory.egg-info/requires.txt +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/loop_memory.egg-info/top_level.txt +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/setup.cfg +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_admin_ingest_route.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_agent_memory_api.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_agent_memory_sdk.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_auth_token_rotate.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_cli_rules.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_cli_v7.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_cli_version.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_contradictions.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_evolution.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_evolution_quality.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_expanduser.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_export_ask.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_graph.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_ingest.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_llm_consolidator.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_llm_fingerprint_not_persisted.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_llm_providers.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_llm_test_endpoint.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_loop.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_mcp.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_memories_pagination.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_openclaw_loader.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_reflection.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_repo_framing.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_score_api.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_scoring_v2.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_secrets.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_serve_app.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_serve_handlers.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_session_order.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_short_query.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_store.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_summarization.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_universal_memory.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_vector_store.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_watcher.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_wiki_classifier.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_wiki_export_escape.py +0 -0
- {loop_memory-0.4.4 → loop_memory-0.4.5}/tests/test_wiki_prompts.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: loop-memory
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.5
|
|
4
4
|
Summary: A general-purpose, local memory system for every AI agent you run. Loop Memory auto-captures conversations from Codex / Claude / Hermes / OpenClaw, scores them by importance × recency × usage × feedback, distils them into a curated wiki, and serves everything from a single web UI.
|
|
5
5
|
Author: Loop Memory contributors <loop-memory@users.noreply.github.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -31,7 +31,17 @@ from .memory.types import (
|
|
|
31
31
|
)
|
|
32
32
|
from .storage.sqlite_store import MemoryStore, StoredMemory, StoredSession
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
# Single source of truth for the version string: read it from the
|
|
35
|
+
# installed distribution metadata so `loop_memory.__version__` always
|
|
36
|
+
# matches what `pip show loop-memory` reports. When the package is run
|
|
37
|
+
# from a source checkout (no installed metadata) we fall back to
|
|
38
|
+
# "0.0.0+source" instead of a hard-coded string — this was the root
|
|
39
|
+
# cause of the long-standing stale "0.2.0" since 0.3.0.
|
|
40
|
+
try:
|
|
41
|
+
from importlib.metadata import version as _dist_version, PackageNotFoundError
|
|
42
|
+
__version__ = _dist_version("loop-memory")
|
|
43
|
+
except PackageNotFoundError:
|
|
44
|
+
__version__ = "0.0.0+source"
|
|
35
45
|
|
|
36
46
|
__all__ = [
|
|
37
47
|
# engine
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: loop-memory
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.5
|
|
4
4
|
Summary: A general-purpose, local memory system for every AI agent you run. Loop Memory auto-captures conversations from Codex / Claude / Hermes / OpenClaw, scores them by importance × recency × usage × feedback, distils them into a curated wiki, and serves everything from a single web UI.
|
|
5
5
|
Author: Loop Memory contributors <loop-memory@users.noreply.github.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "loop-memory"
|
|
7
|
-
version = "0.4.
|
|
7
|
+
version = "0.4.5"
|
|
8
8
|
description = "A general-purpose, local memory system for every AI agent you run. Loop Memory auto-captures conversations from Codex / Claude / Hermes / OpenClaw, scores them by importance × recency × usage × feedback, distils them into a curated wiki, and serves everything from a single web UI."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"""Regression tests pinning ``loop_memory.__version__`` to the installed
|
|
2
|
+
distribution version.
|
|
3
|
+
|
|
4
|
+
Before this fix, ``__version__`` was hard-coded to ``"0.2.0"`` in
|
|
5
|
+
``loop_memory/__init__.py`` and had been stale since the 0.3.0 line —
|
|
6
|
+
every release from 0.4.0 → 0.4.4 shipped with ``pip show loop-memory``
|
|
7
|
+
reporting the real version but ``import loop_memory; loop_memory.__version__``
|
|
8
|
+
still saying ``0.2.0``.
|
|
9
|
+
|
|
10
|
+
The fix reads the version from installed distribution metadata, with a
|
|
11
|
+
fallback to ``"0.0.0+source"`` for source checkouts.
|
|
12
|
+
"""
|
|
13
|
+
from __future__ import annotations
|
|
14
|
+
|
|
15
|
+
import re
|
|
16
|
+
import unittest
|
|
17
|
+
from importlib import metadata as importlib_metadata
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class PackageVersionTests(unittest.TestCase):
|
|
21
|
+
def test_dunder_version_is_a_nonempty_string(self) -> None:
|
|
22
|
+
import loop_memory
|
|
23
|
+
self.assertIsInstance(loop_memory.__version__, str)
|
|
24
|
+
self.assertTrue(loop_memory.__version__.strip(),
|
|
25
|
+
"loop_memory.__version__ must not be empty")
|
|
26
|
+
|
|
27
|
+
def test_dunder_version_is_not_stale_0_2_0(self) -> None:
|
|
28
|
+
"""The bug that triggered this fix: ``__version__`` was
|
|
29
|
+
hard-coded to "0.2.0" since 0.3.0 — every release since then
|
|
30
|
+
had to ship with the wrong value. This test makes the regression
|
|
31
|
+
loud if it ever comes back.
|
|
32
|
+
"""
|
|
33
|
+
import loop_memory
|
|
34
|
+
self.assertNotEqual(
|
|
35
|
+
loop_memory.__version__,
|
|
36
|
+
"0.2.0",
|
|
37
|
+
"loop_memory.__version__ is hard-coded to '0.2.0' — "
|
|
38
|
+
"should read from importlib.metadata instead",
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
def test_dunder_version_matches_installed_metadata(self) -> None:
|
|
42
|
+
"""When installed via pip, ``__version__`` MUST equal the
|
|
43
|
+
distribution's own metadata version. This is the contract users
|
|
44
|
+
rely on: ``pip show`` and ``import loop_memory; __version__``
|
|
45
|
+
must agree.
|
|
46
|
+
"""
|
|
47
|
+
import loop_memory
|
|
48
|
+
try:
|
|
49
|
+
installed = importlib_metadata.version("loop-memory")
|
|
50
|
+
except importlib_metadata.PackageNotFoundError:
|
|
51
|
+
self.skipTest("loop-memory is not installed (source checkout)")
|
|
52
|
+
self.assertEqual(
|
|
53
|
+
loop_memory.__version__,
|
|
54
|
+
installed,
|
|
55
|
+
f"loop_memory.__version__={loop_memory.__version__!r} "
|
|
56
|
+
f"but pip metadata says {installed!r}",
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
def test_source_checkout_fallback_is_marker_not_silent_2_0(self) -> None:
|
|
60
|
+
"""When the package isn't installed (e.g. running tests from a
|
|
61
|
+
fresh ``git clone``), ``__version__`` MUST surface that it came
|
|
62
|
+
from source — never silently masquerade as a real release.
|
|
63
|
+
"""
|
|
64
|
+
import loop_memory
|
|
65
|
+
if loop_memory.__version__ == "0.0.0+source":
|
|
66
|
+
return # source-checkout fallback is active; good.
|
|
67
|
+
# Otherwise it must match the installed distribution exactly,
|
|
68
|
+
# which the test above already enforced.
|
|
69
|
+
try:
|
|
70
|
+
installed = importlib_metadata.version("loop-memory")
|
|
71
|
+
except importlib_metadata.PackageNotFoundError:
|
|
72
|
+
self.fail(
|
|
73
|
+
"loop_memory.__version__ did not fall back to "
|
|
74
|
+
"'0.0.0+source' even though no installed metadata exists; "
|
|
75
|
+
f"got {loop_memory.__version__!r}"
|
|
76
|
+
)
|
|
77
|
+
self.assertEqual(loop_memory.__version__, installed)
|
|
78
|
+
|
|
79
|
+
def test_version_string_looks_like_a_pep440_version(self) -> None:
|
|
80
|
+
"""Sanity: the version string must parse as something PEP 440-ish
|
|
81
|
+
(X.Y.Z with optional pre/post suffixes), not be a hard-coded
|
|
82
|
+
marker like 'unknown' or 'dev'.
|
|
83
|
+
"""
|
|
84
|
+
import loop_memory
|
|
85
|
+
v = loop_memory.__version__
|
|
86
|
+
if v == "0.0.0+source":
|
|
87
|
+
self.skipTest("source-checkout fallback")
|
|
88
|
+
# Allow X.Y.Z plus optional a/b/rc/post/dev suffixes
|
|
89
|
+
self.assertRegex(
|
|
90
|
+
v,
|
|
91
|
+
r"^\d+\.\d+\.\d+(?:[abc]|rc|\.post|\.dev|\.local|[\-+.][\w.]+)*$",
|
|
92
|
+
f"version {v!r} is not PEP 440-shaped",
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
if __name__ == "__main__":
|
|
97
|
+
unittest.main()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|