sunholo 0.62.6__tar.gz → 0.62.8__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.
- {sunholo-0.62.6 → sunholo-0.62.8}/PKG-INFO +2 -2
- {sunholo-0.62.6 → sunholo-0.62.8}/setup.py +1 -1
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/chunker/publish.py +1 -1
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/components/retriever.py +1 -1
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/logging.py +7 -2
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/pubsub/pubsub_manager.py +1 -1
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/utils/config.py +2 -2
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/utils/gcp.py +0 -36
- sunholo-0.62.8/sunholo/utils/gcp_project.py +40 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo.egg-info/PKG-INFO +2 -2
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo.egg-info/SOURCES.txt +1 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/LICENSE.txt +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/MANIFEST.in +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/README.md +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/setup.cfg +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/__init__.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/agents/__init__.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/agents/chat_history.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/agents/dispatch_to_qa.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/agents/fastapi/__init__.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/agents/fastapi/base.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/agents/fastapi/qna_routes.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/agents/flask/__init__.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/agents/flask/base.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/agents/flask/qna_routes.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/agents/langserve.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/agents/pubsub.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/agents/route.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/agents/special_commands.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/archive/__init__.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/archive/archive.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/auth/__init__.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/auth/run.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/bots/__init__.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/bots/discord.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/bots/github_webhook.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/bots/webapp.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/chunker/__init__.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/chunker/data_to_embed_pubsub.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/chunker/doc_handling.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/chunker/images.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/chunker/loaders.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/chunker/message_data.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/chunker/pdfs.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/chunker/splitter.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/cli/__init__.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/cli/chat_vac.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/cli/cli.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/cli/cli_init.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/cli/configs.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/cli/deploy.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/cli/embedder.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/cli/merge_texts.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/cli/run_proxy.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/cli/sun_rich.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/components/__init__.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/components/llm.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/components/vectorstore.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/database/__init__.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/database/alloydb.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/database/database.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/database/lancedb.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/database/sql/sb/create_function.sql +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/database/sql/sb/create_function_time.sql +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/database/sql/sb/create_table.sql +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/database/sql/sb/delete_source_row.sql +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/database/sql/sb/return_sources.sql +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/database/sql/sb/setup.sql +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/database/static_dbs.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/database/uuid.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/embedder/__init__.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/embedder/embed_chunk.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/gcs/__init__.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/gcs/add_file.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/gcs/download_url.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/gcs/metadata.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/langfuse/__init__.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/langfuse/callback.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/langfuse/prompts.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/llamaindex/__init__.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/llamaindex/generate.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/llamaindex/get_files.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/llamaindex/import_files.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/lookup/__init__.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/lookup/model_lookup.yaml +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/patches/__init__.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/patches/langchain/__init__.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/patches/langchain/lancedb.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/patches/langchain/vertexai.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/pubsub/__init__.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/pubsub/process_pubsub.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/qna/__init__.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/qna/parsers.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/qna/retry.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/streaming/__init__.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/streaming/content_buffer.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/streaming/langserve.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/streaming/stream_lookup.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/streaming/streaming.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/summarise/__init__.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/summarise/summarise.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/utils/__init__.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/utils/big_context.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/utils/config_schema.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/utils/parsers.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/utils/timedelta.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/utils/user_ids.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/vertex/__init__.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/vertex/init.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo/vertex/memory_tools.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo.egg-info/dependency_links.txt +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo.egg-info/entry_points.txt +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo.egg-info/requires.txt +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/sunholo.egg-info/top_level.txt +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/tests/test_chat_history.py +0 -0
- {sunholo-0.62.6 → sunholo-0.62.8}/tests/test_config.py +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: sunholo
|
|
3
|
-
Version: 0.62.
|
|
3
|
+
Version: 0.62.8
|
|
4
4
|
Summary: Large Language Model DevOps - a package to help deploy LLMs to the Cloud.
|
|
5
5
|
Home-page: https://github.com/sunholo-data/sunholo-py
|
|
6
|
-
Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.62.
|
|
6
|
+
Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.62.8.tar.gz
|
|
7
7
|
Author: Holosun ApS
|
|
8
8
|
Author-email: multivac@sunholo.com
|
|
9
9
|
License: Apache License, Version 2.0
|
|
@@ -15,7 +15,7 @@ from ..logging import log
|
|
|
15
15
|
from .vectorstore import pick_vectorstore
|
|
16
16
|
from ..utils import load_config_key
|
|
17
17
|
from .llm import get_embeddings
|
|
18
|
-
from ..utils.
|
|
18
|
+
from ..utils.gcp_project import get_gcp_project
|
|
19
19
|
|
|
20
20
|
from langchain.retrievers import MergerRetriever
|
|
21
21
|
from langchain_community.retrievers import GoogleCloudEnterpriseSearchRetriever
|
|
@@ -18,16 +18,16 @@ try:
|
|
|
18
18
|
except ImportError:
|
|
19
19
|
Client = None
|
|
20
20
|
|
|
21
|
-
from .utils.gcp import get_gcp_project, is_running_on_gcp, is_gcp_logged_in
|
|
22
21
|
import logging
|
|
23
22
|
import inspect
|
|
24
23
|
import os
|
|
25
24
|
|
|
26
|
-
|
|
27
25
|
class GoogleCloudLogging:
|
|
28
26
|
|
|
29
27
|
_instances = {} # Dictionary to hold instances keyed by a tuple of (project_id, logger_name)
|
|
30
28
|
|
|
29
|
+
|
|
30
|
+
|
|
31
31
|
def __new__(cls, project_id=None, log_level=logging.INFO, logger_name=None):
|
|
32
32
|
key = (project_id, logger_name)
|
|
33
33
|
if key not in cls._instances:
|
|
@@ -36,6 +36,8 @@ class GoogleCloudLogging:
|
|
|
36
36
|
|
|
37
37
|
def __init__(self, project_id=None, log_level=logging.INFO, logger_name=None):
|
|
38
38
|
if not hasattr(self, 'initialized'): # Avoid re-initialization
|
|
39
|
+
from .utils.gcp_project import get_gcp_project # circular import if outside
|
|
40
|
+
|
|
39
41
|
self.project_id = project_id or get_gcp_project()
|
|
40
42
|
self.client = Client(project=self.project_id) if is_gcp_logged_in() else None
|
|
41
43
|
self.logger_name = logger_name
|
|
@@ -52,6 +54,7 @@ class GoogleCloudLogging:
|
|
|
52
54
|
|
|
53
55
|
try:
|
|
54
56
|
caller_info = self._get_caller_info()
|
|
57
|
+
from .utils.gcp import is_running_on_gcp, is_gcp_logged_in
|
|
55
58
|
if not is_running_on_gcp() and not is_gcp_logged_in():
|
|
56
59
|
import logging
|
|
57
60
|
logging.basicConfig(level=self.log_level, format='%(asctime)s - %(levelname)s - %(message)s')
|
|
@@ -98,6 +101,7 @@ class GoogleCloudLogging:
|
|
|
98
101
|
if not logger_name and not self.logger_name:
|
|
99
102
|
raise ValueError("Must provide a logger name e.g. 'run.googleapis.com%2Fstderr'")
|
|
100
103
|
|
|
104
|
+
from .utils.gcp import is_running_on_gcp, is_gcp_logged_in
|
|
101
105
|
if not is_running_on_gcp() and not is_gcp_logged_in():
|
|
102
106
|
log.basicConfig(level=log.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
|
|
103
107
|
if log_text:
|
|
@@ -222,6 +226,7 @@ def setup_logging(logger_name=None, log_level=logging.INFO, project_id=None):
|
|
|
222
226
|
|
|
223
227
|
if Client and os.environ.get('GOOGLE_CLOUD_LOGGING') == "1":
|
|
224
228
|
if project_id is None:
|
|
229
|
+
from .utils.gcp_project import get_gcp_project
|
|
225
230
|
project_id = get_gcp_project()
|
|
226
231
|
# Instantiate the GoogleCloudLogging class
|
|
227
232
|
gc_logger = GoogleCloudLogging(project_id, log_level=log_level, logger_name=logger_name)
|
|
@@ -192,8 +192,8 @@ def load_config_key(key: str, vector_name: str, kind: str):
|
|
|
192
192
|
print(f'API URL: {api_url}')
|
|
193
193
|
```
|
|
194
194
|
"""
|
|
195
|
-
|
|
196
|
-
|
|
195
|
+
# can't use sunholo.logging due to circular import
|
|
196
|
+
from ..logging import log
|
|
197
197
|
|
|
198
198
|
if kind != 'agentConfig':
|
|
199
199
|
assert isinstance(key, str), f"key must be a string got a {type(key)}"
|
|
@@ -17,7 +17,6 @@ import socket
|
|
|
17
17
|
# can't install due to circular import sunholo.logging
|
|
18
18
|
import logging
|
|
19
19
|
|
|
20
|
-
from .config import load_config_key
|
|
21
20
|
|
|
22
21
|
def is_running_on_cloudrun():
|
|
23
22
|
"""
|
|
@@ -66,15 +65,6 @@ def is_gcp_logged_in():
|
|
|
66
65
|
except DefaultCredentialsError:
|
|
67
66
|
return False
|
|
68
67
|
|
|
69
|
-
def get_env_project_id():
|
|
70
|
-
"""
|
|
71
|
-
Attempts to retrieve the project ID from environment variables.
|
|
72
|
-
|
|
73
|
-
Returns:
|
|
74
|
-
str or None: The project ID if found in environment variables, None otherwise.
|
|
75
|
-
"""
|
|
76
|
-
return os.environ.get('GCP_PROJECT') or os.environ.get('GOOGLE_CLOUD_PROJECT')
|
|
77
|
-
|
|
78
68
|
is_gcp_cached = None # Global variable for caching the result
|
|
79
69
|
def is_running_on_gcp():
|
|
80
70
|
"""
|
|
@@ -122,32 +112,6 @@ def get_service_account_email():
|
|
|
122
112
|
os.environ['GCP_DEFAULT_SERVICE_EMAIL'] = service_email
|
|
123
113
|
return service_email
|
|
124
114
|
|
|
125
|
-
def get_gcp_project():
|
|
126
|
-
"""
|
|
127
|
-
Retrieve the GCP project ID from environment variables or the GCP metadata server.
|
|
128
|
-
|
|
129
|
-
Returns:
|
|
130
|
-
str or None: The project ID if found, None otherwise.
|
|
131
|
-
"""
|
|
132
|
-
gcp_config = load_config_key("gcp_config", "global", "vacConfig")
|
|
133
|
-
if gcp_config:
|
|
134
|
-
if gcp_config.get('project_id'):
|
|
135
|
-
return gcp_config.get('project_id')
|
|
136
|
-
|
|
137
|
-
project_id = get_env_project_id()
|
|
138
|
-
if project_id:
|
|
139
|
-
return project_id
|
|
140
|
-
|
|
141
|
-
project_id = get_metadata('project/project-id')
|
|
142
|
-
if project_id:
|
|
143
|
-
os.environ["GCP_PROJECT"] = project_id
|
|
144
|
-
return project_id
|
|
145
|
-
|
|
146
|
-
if not is_running_on_gcp():
|
|
147
|
-
return None
|
|
148
|
-
|
|
149
|
-
logging.warning("GCP Project ID not found. Ensure you are running on GCP or have the GCP_PROJECT environment variable set.")
|
|
150
|
-
return None
|
|
151
115
|
|
|
152
116
|
|
|
153
117
|
def get_region():
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import os
|
|
2
|
+
from .config import load_config_key
|
|
3
|
+
from .gcp import get_metadata, is_running_on_gcp
|
|
4
|
+
import logging
|
|
5
|
+
|
|
6
|
+
def get_env_project_id():
|
|
7
|
+
"""
|
|
8
|
+
Attempts to retrieve the project ID from environment variables.
|
|
9
|
+
|
|
10
|
+
Returns:
|
|
11
|
+
str or None: The project ID if found in environment variables, None otherwise.
|
|
12
|
+
"""
|
|
13
|
+
return os.environ.get('GCP_PROJECT') or os.environ.get('GOOGLE_CLOUD_PROJECT')
|
|
14
|
+
|
|
15
|
+
def get_gcp_project():
|
|
16
|
+
"""
|
|
17
|
+
Retrieve the GCP project ID from environment variables or the GCP metadata server.
|
|
18
|
+
|
|
19
|
+
Returns:
|
|
20
|
+
str or None: The project ID if found, None otherwise.
|
|
21
|
+
"""
|
|
22
|
+
gcp_config = load_config_key("gcp_config", "global", "vacConfig")
|
|
23
|
+
if gcp_config:
|
|
24
|
+
if gcp_config.get('project_id'):
|
|
25
|
+
return gcp_config.get('project_id')
|
|
26
|
+
|
|
27
|
+
project_id = get_env_project_id()
|
|
28
|
+
if project_id:
|
|
29
|
+
return project_id
|
|
30
|
+
|
|
31
|
+
project_id = get_metadata('project/project-id')
|
|
32
|
+
if project_id:
|
|
33
|
+
os.environ["GCP_PROJECT"] = project_id
|
|
34
|
+
return project_id
|
|
35
|
+
|
|
36
|
+
if not is_running_on_gcp():
|
|
37
|
+
return None
|
|
38
|
+
|
|
39
|
+
logging.warning("GCP Project ID not found. Ensure you are running on GCP or have the GCP_PROJECT environment variable set.")
|
|
40
|
+
return None
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: sunholo
|
|
3
|
-
Version: 0.62.
|
|
3
|
+
Version: 0.62.8
|
|
4
4
|
Summary: Large Language Model DevOps - a package to help deploy LLMs to the Cloud.
|
|
5
5
|
Home-page: https://github.com/sunholo-data/sunholo-py
|
|
6
|
-
Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.62.
|
|
6
|
+
Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.62.8.tar.gz
|
|
7
7
|
Author: Holosun ApS
|
|
8
8
|
Author-email: multivac@sunholo.com
|
|
9
9
|
License: Apache License, Version 2.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
|