sourcecode 0.38.0__tar.gz → 0.39.0__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.
- {sourcecode-0.38.0 → sourcecode-0.39.0}/PKG-INFO +1 -1
- {sourcecode-0.38.0 → sourcecode-0.39.0}/pyproject.toml +1 -1
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/__init__.py +1 -1
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/cli.py +50 -1
- {sourcecode-0.38.0 → sourcecode-0.39.0}/.agents/skills/source-command-gsd-join-discord/SKILL.md +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/.agents/skills/source-command-gsd-review-backlog/SKILL.md +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/.agents/skills/source-command-gsd-workstreams/SKILL.md +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/.gitignore +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/.ruff.toml +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/CONTRIBUTING.md +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/LICENSE +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/README.md +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/SECURITY.md +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/docs/privacy.md +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/docs/schema.md +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/raw +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/architecture_analyzer.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/classifier.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/detectors/java.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/prepare_context.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/redactor.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/scanner.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/schema.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/serializer.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/summarizer.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/telemetry/consent.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/src/sourcecode/workspace.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/__init__.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/conftest.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/fixtures/coverage.xml +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/fixtures/fastapi_app/pyproject.toml +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/fixtures/fastapi_app/src/main.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/fixtures/go_service/cmd/api/main.go +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/fixtures/go_service/go.mod +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/fixtures/jacoco.xml +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/fixtures/lcov.info +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/fixtures/nextjs_app/app/page.tsx +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/fixtures/nextjs_app/package.json +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/fixtures/nextjs_app/pnpm-lock.yaml +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/fixtures/pnpm_monorepo/apps/web/app/page.tsx +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/fixtures/pnpm_monorepo/apps/web/package.json +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/fixtures/pnpm_monorepo/packages/api/main.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/fixtures/pnpm_monorepo/packages/api/pyproject.toml +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/fixtures/pnpm_monorepo/pnpm-workspace.yaml +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_architecture_analyzer.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_architecture_summary.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_ast_extractor.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_classifier.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_cli.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_code_notes_analyzer.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_contract_pipeline.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_coverage_parser.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_cross_consistency.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_dependency_analyzer_node_python.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_dependency_analyzer_polyglot.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_dependency_schema.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_detector_dotnet.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_detector_go_rust_java.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_detector_nodejs.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_detector_php_ruby_dart.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_detector_python.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_detector_universal_managed.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_detector_universal_systems.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_detectors_base.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_doc_analyzer_jsdom.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_doc_analyzer_python.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_graph_analyzer_polyglot.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_graph_analyzer_python_node.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_graph_schema.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_hybrid_inference.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_integration.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_integration_dependencies.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_integration_detection.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_integration_docs.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_integration_graph_modules.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_integration_lqn.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_integration_metrics.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_integration_multistack.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_integration_semantics.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_integration_universal.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_metrics_analyzer.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_packaging.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_phase1_improvements.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_pipeline_integrity.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_real_projects.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_redactor.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_scanner.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_schema.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_schema_normalization.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_semantic_analyzer_node.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_semantic_analyzer_python.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_semantic_import_resolution.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_semantic_schema.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_signal_hierarchy.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_summarizer.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_telemetry.py +0 -0
- {sourcecode-0.38.0 → sourcecode-0.39.0}/tests/test_workspace_analyzer.py +0 -0
|
@@ -220,6 +220,29 @@ def _preprocess_argv() -> None:
|
|
|
220
220
|
_sys.argv = _sys.argv[:1] + modified
|
|
221
221
|
|
|
222
222
|
|
|
223
|
+
def _copy_to_clipboard(content: str) -> bool:
|
|
224
|
+
"""Copy text to system clipboard. Returns True on success, False otherwise (never raises)."""
|
|
225
|
+
import subprocess
|
|
226
|
+
import sys as _sys
|
|
227
|
+
try:
|
|
228
|
+
if _sys.platform == "darwin":
|
|
229
|
+
subprocess.run(["pbcopy"], input=content.encode("utf-8"), check=True, timeout=10)
|
|
230
|
+
return True
|
|
231
|
+
elif _sys.platform == "win32":
|
|
232
|
+
subprocess.run(["clip"], input=content.encode("utf-16"), check=True, timeout=10)
|
|
233
|
+
return True
|
|
234
|
+
else:
|
|
235
|
+
for cmd in (["xclip", "-selection", "clipboard"], ["xsel", "--clipboard", "--input"]):
|
|
236
|
+
try:
|
|
237
|
+
subprocess.run(cmd, input=content.encode("utf-8"), check=True, timeout=10)
|
|
238
|
+
return True
|
|
239
|
+
except (FileNotFoundError, subprocess.CalledProcessError):
|
|
240
|
+
continue
|
|
241
|
+
return False
|
|
242
|
+
except Exception:
|
|
243
|
+
return False
|
|
244
|
+
|
|
245
|
+
|
|
223
246
|
app = typer.Typer(
|
|
224
247
|
name="sourcecode",
|
|
225
248
|
help=_HELP,
|
|
@@ -571,6 +594,12 @@ def main(
|
|
|
571
594
|
"--symbol",
|
|
572
595
|
help="Contract mode: extract localized context for a specific symbol name. Returns defining file + all importers.",
|
|
573
596
|
),
|
|
597
|
+
copy: bool = typer.Option(
|
|
598
|
+
False,
|
|
599
|
+
"--copy",
|
|
600
|
+
"-c",
|
|
601
|
+
help="Copy output to system clipboard after a successful run. No-op when --output is used or clipboard is unavailable.",
|
|
602
|
+
),
|
|
574
603
|
) -> None:
|
|
575
604
|
"""Analyze a repository and produce structured context for AI coding agents.
|
|
576
605
|
|
|
@@ -1386,6 +1415,13 @@ def main(
|
|
|
1386
1415
|
# 6. Write output (CLI-04)
|
|
1387
1416
|
write_output(content, output=output)
|
|
1388
1417
|
|
|
1418
|
+
# 7. Clipboard copy (--copy / -c)
|
|
1419
|
+
if copy and output is None:
|
|
1420
|
+
_trimmed = content.strip()
|
|
1421
|
+
if _trimmed and _trimmed not in ("{}", "[]", "null"):
|
|
1422
|
+
if _copy_to_clipboard(content):
|
|
1423
|
+
typer.echo("✓ copied to clipboard", err=True)
|
|
1424
|
+
|
|
1389
1425
|
|
|
1390
1426
|
@app.command("prepare-context")
|
|
1391
1427
|
def prepare_context_cmd(
|
|
@@ -1417,6 +1453,12 @@ def prepare_context_cmd(
|
|
|
1417
1453
|
"--dry-run",
|
|
1418
1454
|
help="Show what would be analyzed without running it",
|
|
1419
1455
|
),
|
|
1456
|
+
copy: bool = typer.Option(
|
|
1457
|
+
False,
|
|
1458
|
+
"--copy",
|
|
1459
|
+
"-c",
|
|
1460
|
+
help="Copy output to system clipboard after a successful run. No-op when clipboard is unavailable.",
|
|
1461
|
+
),
|
|
1420
1462
|
) -> None:
|
|
1421
1463
|
"""Task-specific context for AI coding agents.
|
|
1422
1464
|
|
|
@@ -1514,7 +1556,14 @@ def prepare_context_cmd(
|
|
|
1514
1556
|
if llm_prompt:
|
|
1515
1557
|
out["llm_prompt"] = builder.render_prompt(output)
|
|
1516
1558
|
|
|
1517
|
-
|
|
1559
|
+
_pc_content = json.dumps(out, indent=2, ensure_ascii=False)
|
|
1560
|
+
typer.echo(_pc_content)
|
|
1561
|
+
|
|
1562
|
+
if copy:
|
|
1563
|
+
_trimmed = _pc_content.strip()
|
|
1564
|
+
if _trimmed and _trimmed not in ("{}", "[]", "null"):
|
|
1565
|
+
if _copy_to_clipboard(_pc_content):
|
|
1566
|
+
typer.echo("✓ copied to clipboard", err=True)
|
|
1518
1567
|
|
|
1519
1568
|
|
|
1520
1569
|
# ── Telemetry commands ────────────────────────────────────────────────────────
|
{sourcecode-0.38.0 → sourcecode-0.39.0}/.agents/skills/source-command-gsd-join-discord/SKILL.md
RENAMED
|
File without changes
|
{sourcecode-0.38.0 → sourcecode-0.39.0}/.agents/skills/source-command-gsd-review-backlog/SKILL.md
RENAMED
|
File without changes
|
{sourcecode-0.38.0 → sourcecode-0.39.0}/.agents/skills/source-command-gsd-workstreams/SKILL.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
|
{sourcecode-0.38.0 → sourcecode-0.39.0}/tests/fixtures/pnpm_monorepo/packages/api/pyproject.toml
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
|