prompture 0.0.43.dev1__tar.gz → 0.0.44__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.
- {prompture-0.0.43.dev1/prompture.egg-info → prompture-0.0.44}/PKG-INFO +1 -1
- prompture-0.0.44/VERSION +1 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/_version.py +2 -2
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/async_moonshot_driver.py +31 -14
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/moonshot_driver.py +31 -15
- {prompture-0.0.43.dev1 → prompture-0.0.44/prompture.egg-info}/PKG-INFO +1 -1
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture.egg-info/SOURCES.txt +1 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/.claude/skills/add-driver/SKILL.md +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/.claude/skills/add-driver/references/driver-template.md +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/.claude/skills/add-example/SKILL.md +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/.claude/skills/add-field/SKILL.md +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/.claude/skills/add-test/SKILL.md +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/.claude/skills/run-tests/SKILL.md +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/.claude/skills/scaffold-extraction/SKILL.md +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/.claude/skills/update-pricing/SKILL.md +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/.env.copy +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/.github/FUNDING.yml +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/.github/scripts/update_docs_version.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/.github/scripts/update_wrapper_version.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/.github/workflows/dev.yml +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/.github/workflows/documentation.yml +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/.github/workflows/publish.yml +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/CLAUDE.md +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/LICENSE +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/MANIFEST.in +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/README.md +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/ROADMAP.md +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/docs/source/_static/custom.css +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/docs/source/_templates/footer.html +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/docs/source/api/core.rst +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/docs/source/api/drivers.rst +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/docs/source/api/field_definitions.rst +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/docs/source/api/index.rst +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/docs/source/api/runner.rst +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/docs/source/api/tools.rst +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/docs/source/api/validator.rst +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/docs/source/conf.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/docs/source/contributing.rst +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/docs/source/examples.rst +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/docs/source/field_definitions_reference.rst +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/docs/source/index.rst +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/docs/source/installation.rst +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/docs/source/quickstart.rst +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/docs/source/toon_input_guide.rst +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/packages/README.md +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/packages/llm_to_json/README.md +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/packages/llm_to_json/llm_to_json/__init__.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/packages/llm_to_json/pyproject.toml +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/packages/llm_to_json/test.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/packages/llm_to_toon/README.md +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/packages/llm_to_toon/llm_to_toon/__init__.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/packages/llm_to_toon/pyproject.toml +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/packages/llm_to_toon/test.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/__init__.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/agent.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/agent_types.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/aio/__init__.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/async_agent.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/async_conversation.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/async_core.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/async_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/async_groups.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/cache.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/callbacks.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/cli.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/conversation.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/core.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/cost_mixin.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/discovery.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/__init__.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/airllm_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/async_airllm_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/async_azure_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/async_claude_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/async_google_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/async_grok_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/async_groq_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/async_hugging_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/async_lmstudio_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/async_local_http_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/async_modelscope_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/async_ollama_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/async_openai_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/async_openrouter_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/async_registry.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/async_zai_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/azure_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/claude_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/google_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/grok_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/groq_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/hugging_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/lmstudio_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/local_http_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/modelscope_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/ollama_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/openai_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/openrouter_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/registry.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/vision_helpers.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/drivers/zai_driver.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/field_definitions.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/group_types.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/groups.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/image.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/ledger.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/logging.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/model_rates.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/persistence.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/persona.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/runner.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/scaffold/__init__.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/scaffold/generator.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/scaffold/templates/Dockerfile.j2 +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/scaffold/templates/README.md.j2 +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/scaffold/templates/config.py.j2 +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/scaffold/templates/env.example.j2 +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/scaffold/templates/main.py.j2 +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/scaffold/templates/models.py.j2 +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/scaffold/templates/requirements.txt.j2 +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/serialization.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/server.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/session.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/settings.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/tools.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/tools_schema.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture/validator.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture.egg-info/dependency_links.txt +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture.egg-info/entry_points.txt +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture.egg-info/requires.txt +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/prompture.egg-info/top_level.txt +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/pyproject.toml +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/requirements.txt +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/setup.cfg +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/test.py +0 -0
- {prompture-0.0.43.dev1 → prompture-0.0.44}/test_version_diagnosis.py +0 -0
prompture-0.0.44/VERSION
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.0.44
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '0.0.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 0,
|
|
31
|
+
__version__ = version = '0.0.44'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 0, 44)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
|
@@ -85,20 +85,31 @@ class AsyncMoonshotDriver(CostMixin, AsyncDriver):
|
|
|
85
85
|
if supports_temperature and "temperature" in opts:
|
|
86
86
|
data["temperature"] = opts["temperature"]
|
|
87
87
|
|
|
88
|
+
# Native JSON mode support — skip for reasoning models where
|
|
89
|
+
# Moonshot's API does not reliably support response_format.
|
|
88
90
|
if options.get("json_mode"):
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
91
|
+
from ..model_rates import get_model_capabilities
|
|
92
|
+
|
|
93
|
+
caps = get_model_capabilities("moonshot", model)
|
|
94
|
+
is_reasoning = caps is not None and caps.is_reasoning is True
|
|
95
|
+
model_supports_structured = (
|
|
96
|
+
caps is None or caps.supports_structured_output is not False
|
|
97
|
+
) and not is_reasoning
|
|
98
|
+
|
|
99
|
+
if model_supports_structured:
|
|
100
|
+
json_schema = options.get("json_schema")
|
|
101
|
+
if json_schema:
|
|
102
|
+
schema_copy = prepare_strict_schema(json_schema)
|
|
103
|
+
data["response_format"] = {
|
|
104
|
+
"type": "json_schema",
|
|
105
|
+
"json_schema": {
|
|
106
|
+
"name": "extraction",
|
|
107
|
+
"strict": True,
|
|
108
|
+
"schema": schema_copy,
|
|
109
|
+
},
|
|
110
|
+
}
|
|
111
|
+
else:
|
|
112
|
+
data["response_format"] = {"type": "json_object"}
|
|
102
113
|
|
|
103
114
|
async with httpx.AsyncClient() as client:
|
|
104
115
|
try:
|
|
@@ -132,7 +143,13 @@ class AsyncMoonshotDriver(CostMixin, AsyncDriver):
|
|
|
132
143
|
"model_name": model,
|
|
133
144
|
}
|
|
134
145
|
|
|
135
|
-
|
|
146
|
+
message = resp["choices"][0]["message"]
|
|
147
|
+
text = message.get("content") or ""
|
|
148
|
+
|
|
149
|
+
# Reasoning models may return content in reasoning_content when content is empty
|
|
150
|
+
if not text and message.get("reasoning_content"):
|
|
151
|
+
text = message["reasoning_content"]
|
|
152
|
+
|
|
136
153
|
return {"text": text, "meta": meta}
|
|
137
154
|
|
|
138
155
|
# ------------------------------------------------------------------
|
|
@@ -112,21 +112,31 @@ class MoonshotDriver(CostMixin, Driver):
|
|
|
112
112
|
if supports_temperature and "temperature" in opts:
|
|
113
113
|
data["temperature"] = opts["temperature"]
|
|
114
114
|
|
|
115
|
-
# Native JSON mode support
|
|
115
|
+
# Native JSON mode support — skip for reasoning models where
|
|
116
|
+
# Moonshot's API does not reliably support response_format.
|
|
116
117
|
if options.get("json_mode"):
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
118
|
+
from ..model_rates import get_model_capabilities
|
|
119
|
+
|
|
120
|
+
caps = get_model_capabilities("moonshot", model)
|
|
121
|
+
is_reasoning = caps is not None and caps.is_reasoning is True
|
|
122
|
+
model_supports_structured = (
|
|
123
|
+
caps is None or caps.supports_structured_output is not False
|
|
124
|
+
) and not is_reasoning
|
|
125
|
+
|
|
126
|
+
if model_supports_structured:
|
|
127
|
+
json_schema = options.get("json_schema")
|
|
128
|
+
if json_schema:
|
|
129
|
+
schema_copy = prepare_strict_schema(json_schema)
|
|
130
|
+
data["response_format"] = {
|
|
131
|
+
"type": "json_schema",
|
|
132
|
+
"json_schema": {
|
|
133
|
+
"name": "extraction",
|
|
134
|
+
"strict": True,
|
|
135
|
+
"schema": schema_copy,
|
|
136
|
+
},
|
|
137
|
+
}
|
|
138
|
+
else:
|
|
139
|
+
data["response_format"] = {"type": "json_object"}
|
|
130
140
|
|
|
131
141
|
try:
|
|
132
142
|
response = requests.post(
|
|
@@ -159,7 +169,13 @@ class MoonshotDriver(CostMixin, Driver):
|
|
|
159
169
|
"model_name": model,
|
|
160
170
|
}
|
|
161
171
|
|
|
162
|
-
|
|
172
|
+
message = resp["choices"][0]["message"]
|
|
173
|
+
text = message.get("content") or ""
|
|
174
|
+
|
|
175
|
+
# Reasoning models may return content in reasoning_content when content is empty
|
|
176
|
+
if not text and message.get("reasoning_content"):
|
|
177
|
+
text = message["reasoning_content"]
|
|
178
|
+
|
|
163
179
|
return {"text": text, "meta": meta}
|
|
164
180
|
|
|
165
181
|
# ------------------------------------------------------------------
|
|
File without changes
|
{prompture-0.0.43.dev1 → prompture-0.0.44}/.claude/skills/add-driver/references/driver-template.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|