cluxion-agentplugin-preprocessing 0.3.8__tar.gz → 0.3.9__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.
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/PKG-INFO +1 -1
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/pyproject.toml +1 -1
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_agentplugin_preprocessing/__init__.py +1 -1
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/core/clarification.py +17 -5
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/tests/runtime/test_clarification.py +25 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/.github/profile/README.md +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/.gitignore +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/Docs/README.md +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/LICENSE +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/README.md +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/adapters/claude/.claude-plugin/plugin.json +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/adapters/claude/skills/preprocess/SKILL.md +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/adapters/codex/config-snippet.toml +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/cluxion-Docs/README.md +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/cluxion-Docs/architecture.md +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/cluxion-Docs/harness-logic.md +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/cluxion-Docs/honesty-preprocessing.md +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/cluxion-Docs/install-and-operations.md +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/cluxion-Docs/security.md +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/rust/cluxion_queue/Cargo.lock +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/rust/cluxion_queue/Cargo.toml +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/rust/cluxion_queue/pyproject.toml +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/rust/cluxion_queue/src/context.rs +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/rust/cluxion_queue/src/dispatch.rs +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/rust/cluxion_queue/src/guard.rs +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/rust/cluxion_queue/src/lib.rs +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/rust/cluxion_queue/src/main.rs +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/rust/cluxion_queue/src/queue.rs +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/rust/cluxion_queue/src/types.rs +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_agentplugin_preprocessing/cli.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_agentplugin_preprocessing/doctor/__init__.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_agentplugin_preprocessing/doctor/catalog.json +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_agentplugin_preprocessing/doctor/framework.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_agentplugin_preprocessing/doctor/probes.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_agentplugin_preprocessing/guard_watch.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_agentplugin_preprocessing/hermes_config.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_agentplugin_preprocessing/plugin.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_agentplugin_preprocessing/plugin.yaml +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_agentplugin_preprocessing/runner.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_agentplugin_preprocessing/schemas.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/__init__.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/__main__.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/adapters/__init__.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/adapters/contract.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/adapters/grok_build.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/adapters/hermes.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/adapters/spec.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/bootstrap.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/cli.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/core/__init__.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/core/context_compress.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/core/dispatch_store.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/core/harness.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/core/intent.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/core/ledger.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/core/ledger_codec.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/core/plan_codec.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/core/preprocess.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/core/types.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/core/work_queue.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/guard_daemon_host.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/models/__init__.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/models/supervisor.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/models/vllm_mlx.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/resources/__init__.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/resources/guard_bridge.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/resources/py_queue.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/resources/queue_bridge.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/resources/rust_bridge.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/web/__init__.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/src/cluxion_runtime/web/browser_bridge.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/tests/runtime/test_browser_bridge.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/tests/runtime/test_cluxion_runtime_spine.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/tests/runtime/test_context_compress.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/tests/runtime/test_contract.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/tests/runtime/test_dispatch_store.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/tests/runtime/test_guard.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/tests/runtime/test_ledger.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/tests/runtime/test_py_queue_concurrency.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/tests/runtime/test_queue_backends.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/tests/runtime/test_runtime_adapter_cli.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/tests/runtime/test_rust_queue.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/tests/runtime/test_supervisor.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/tests/test_bootstrap.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/tests/test_doctor.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/tests/test_guard_watch.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/tests/test_hermes_config.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/tests/test_packaging_policy.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/tests/test_plugin.py +0 -0
- {cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/tests/test_runner.py +0 -0
{cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cluxion-agentplugin-preprocessing
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.9
|
|
4
4
|
Summary: Universal agent plugin for Cluxion preprocessing, honesty contracts, clarification, Rust work queue, and resource-aware harness handoff.
|
|
5
5
|
Project-URL: Homepage, https://github.com/cluxion/cluxion-Agentplugin-preprocessing
|
|
6
6
|
Project-URL: Repository, https://github.com/cluxion/cluxion-Agentplugin-preprocessing
|
{cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/pyproject.toml
RENAMED
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "cluxion-agentplugin-preprocessing"
|
|
7
|
-
version = "0.3.
|
|
7
|
+
version = "0.3.9"
|
|
8
8
|
description = "Universal agent plugin for Cluxion preprocessing, honesty contracts, clarification, Rust work queue, and resource-aware harness handoff."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
@@ -9,6 +9,7 @@ mixed-language on purpose — they classify user input, they are not output.
|
|
|
9
9
|
from __future__ import annotations
|
|
10
10
|
|
|
11
11
|
import os
|
|
12
|
+
import re
|
|
12
13
|
from dataclasses import dataclass
|
|
13
14
|
|
|
14
15
|
from cluxion_runtime.core.types import WorkIntent, WorkItem
|
|
@@ -125,11 +126,10 @@ def _question(question_id: str, locale: str) -> ClarificationQuestion:
|
|
|
125
126
|
return ClarificationQuestion(question_id, prompt, why)
|
|
126
127
|
|
|
127
128
|
|
|
128
|
-
|
|
129
|
+
# PHRASES: multi-word or longer markers — use plain substring match
|
|
130
|
+
_AMBIGUOUS_PHRASES = (
|
|
129
131
|
"maybe",
|
|
130
132
|
"perhaps",
|
|
131
|
-
"either",
|
|
132
|
-
"or",
|
|
133
133
|
"not sure",
|
|
134
134
|
"unsure",
|
|
135
135
|
"아마",
|
|
@@ -139,6 +139,18 @@ _AMBIGUOUS_KEYWORDS = (
|
|
|
139
139
|
"헷갈",
|
|
140
140
|
"애매",
|
|
141
141
|
)
|
|
142
|
+
# WORDS: short standalone tokens — match on whole-word boundaries only
|
|
143
|
+
_AMBIGUOUS_WORDS = ("or", "either")
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
def _has_ambiguous(text: str) -> bool:
|
|
147
|
+
"""Return True if text contains ambiguous phrasing or choice words."""
|
|
148
|
+
t = text.lower()
|
|
149
|
+
if any(p in t for p in _AMBIGUOUS_PHRASES):
|
|
150
|
+
return True
|
|
151
|
+
return any(re.search(r"\b" + re.escape(w) + r"\b", t) for w in _AMBIGUOUS_WORDS)
|
|
152
|
+
|
|
153
|
+
|
|
142
154
|
_SCOPE_KEYWORDS = ("all", "everything", "전부", "전체", "모든")
|
|
143
155
|
_TARGET_MISSING_KEYWORDS = ("fix", "implement", "refactor", "patch", "수정", "구현", "리팩터", "패치")
|
|
144
156
|
_LOW_CONFIDENCE_THRESHOLD = 0.62
|
|
@@ -155,7 +167,7 @@ def assess_clarification(item: WorkItem, intent: WorkIntent) -> ClarificationRes
|
|
|
155
167
|
reasons.append("low_intent_confidence")
|
|
156
168
|
questions.append(_question("intent_direction", locale))
|
|
157
169
|
|
|
158
|
-
if
|
|
170
|
+
if _has_ambiguous(text):
|
|
159
171
|
reasons.append("ambiguous_language")
|
|
160
172
|
questions.append(_question("disambiguate_choice", locale))
|
|
161
173
|
|
|
@@ -204,7 +216,7 @@ def assess_clarification(item: WorkItem, intent: WorkIntent) -> ClarificationRes
|
|
|
204
216
|
def _needs_direction_confirmation(text: str, intent: WorkIntent) -> bool:
|
|
205
217
|
if intent.category == "general" and len(text) < 240:
|
|
206
218
|
return False
|
|
207
|
-
if
|
|
219
|
+
if _has_ambiguous(text):
|
|
208
220
|
return True
|
|
209
221
|
if intent.category in {"engineering", "security", "documentation", "local_model"}:
|
|
210
222
|
return True
|
|
@@ -68,3 +68,28 @@ def test_resolve_locale_fallbacks() -> None:
|
|
|
68
68
|
assert clarification.resolve_locale("한국어 텍스트") == "ko"
|
|
69
69
|
assert clarification.resolve_locale("plain", explicit="ko-KR") == "ko"
|
|
70
70
|
assert clarification.resolve_locale("plain", explicit="fr") == "en"
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
# Regression tests for word-boundary fix on 'or'/'either'
|
|
74
|
+
def test_clear_prompts_no_false_positive_clarification() -> None:
|
|
75
|
+
clear_prompts = [
|
|
76
|
+
"Generate a sales report",
|
|
77
|
+
"Optimize the code base",
|
|
78
|
+
"sort a list of numbers",
|
|
79
|
+
"What is the hex code for the color blue?",
|
|
80
|
+
]
|
|
81
|
+
for prompt in clear_prompts:
|
|
82
|
+
item = WorkItem(f"w-clear-{prompt[:10]}", prompt)
|
|
83
|
+
plan = build_harness_plan(item)
|
|
84
|
+
assert plan.clarification_required is False, f"False positive on: {prompt}"
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def test_real_or_choice_still_requires_clarification() -> None:
|
|
88
|
+
or_prompts = [
|
|
89
|
+
"Should I use X or Y?",
|
|
90
|
+
"do A or B?",
|
|
91
|
+
]
|
|
92
|
+
for prompt in or_prompts:
|
|
93
|
+
item = WorkItem(f"w-or-{prompt[:10]}", prompt)
|
|
94
|
+
plan = build_harness_plan(item)
|
|
95
|
+
assert plan.clarification_required is True, f"Missed ambiguity on: {prompt}"
|
|
File without changes
|
{cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/.gitignore
RENAMED
|
File without changes
|
{cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/Docs/README.md
RENAMED
|
File without changes
|
|
File without changes
|
{cluxion_agentplugin_preprocessing-0.3.8 → cluxion_agentplugin_preprocessing-0.3.9}/README.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
|