code2llm 0.5.109__tar.gz → 0.5.111__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.
- {code2llm-0.5.109 → code2llm-0.5.111}/PKG-INFO +2 -2
- {code2llm-0.5.109 → code2llm-0.5.111}/README.md +1 -1
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/__init__.py +1 -1
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/cli_exports/formats.py +11 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/cli_exports/orchestrator.py +1 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/yaml_exporter.py +72 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/nlp/__init__.py +1 -1
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm.egg-info/PKG-INFO +2 -2
- {code2llm-0.5.109 → code2llm-0.5.111}/pyproject.toml +1 -1
- {code2llm-0.5.109 → code2llm-0.5.111}/setup.py +1 -1
- {code2llm-0.5.109 → code2llm-0.5.111}/LICENSE +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/__main__.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/analysis/__init__.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/analysis/call_graph.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/analysis/cfg.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/analysis/coupling.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/analysis/data_analysis.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/analysis/dfg.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/analysis/pipeline_detector.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/analysis/side_effects.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/analysis/smells.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/analysis/type_inference.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/analysis/utils/__init__.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/analysis/utils/ast_helpers.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/api.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/cli.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/cli_analysis.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/cli_commands.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/cli_exports/__init__.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/cli_exports/code2logic.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/cli_exports/prompt.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/cli_parser.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/__init__.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/analyzer.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/ast_registry.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/config.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/export_pipeline.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/file_analyzer.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/file_cache.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/file_filter.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/gitignore.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/incremental.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/lang/__init__.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/lang/base.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/lang/cpp.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/lang/csharp.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/lang/generic.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/lang/go_lang.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/lang/java.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/lang/php.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/lang/ruby.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/lang/rust.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/lang/ts_extractors.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/lang/ts_parser.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/lang/typescript.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/large_repo.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/models.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/refactoring.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/repo_files.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/streaming/__init__.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/streaming/cache.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/streaming/incremental.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/streaming/prioritizer.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/streaming/scanner.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/streaming/strategies.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/streaming_analyzer.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/core/toon_size_manager.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/__init__.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/article_view.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/base.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/context_exporter.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/context_view.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/evolution_exporter.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/flow_constants.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/flow_exporter.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/flow_renderer.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/html_dashboard.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/index_generator.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/json_exporter.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/llm_exporter.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/map_exporter.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/mermaid_exporter.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/mermaid_flow_helpers.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/project_yaml_exporter.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/readme_exporter.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/report_generators.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/toon/__init__.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/toon/helpers.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/toon/metrics.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/toon/module_detail.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/toon/renderer.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/toon.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/toon_view.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/exporters/validate_project.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/generators/__init__.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/generators/llm_flow.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/generators/llm_task.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/generators/mermaid.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/nlp/config.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/nlp/entity_resolution.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/nlp/intent_matching.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/nlp/normalization.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/nlp/pipeline.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/patterns/__init__.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/patterns/detector.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/refactor/__init__.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm/refactor/prompt_engine.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm.egg-info/SOURCES.txt +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm.egg-info/dependency_links.txt +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm.egg-info/entry_points.txt +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm.egg-info/requires.txt +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/code2llm.egg-info/top_level.txt +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/setup.cfg +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/tests/test_advanced_analysis.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/tests/test_analyzer.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/tests/test_deep_analysis.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/tests/test_edge_cases.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/tests/test_flow_exporter.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/tests/test_format_quality.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/tests/test_multilanguage_e2e.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/tests/test_nlp_pipeline.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/tests/test_nonpython_cc_calls.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/tests/test_pipeline_detector.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/tests/test_project_toon_export.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/tests/test_prompt_engine.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/tests/test_prompt_txt.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/tests/test_refactoring_engine.py +0 -0
- {code2llm-0.5.109 → code2llm-0.5.111}/tests/test_toon_v2.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code2llm
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.111
|
|
4
4
|
Summary: High-performance Python code flow analysis with optimized TOON format - CFG, DFG, call graphs, and intelligent code queries
|
|
5
5
|
Home-page: https://github.com/wronai/stts
|
|
6
6
|
Author: STTS Project
|
|
@@ -67,7 +67,7 @@ Dynamic: requires-python
|
|
|
67
67
|
|
|
68
68
|
## AI Cost Tracking
|
|
69
69
|
|
|
70
|
-
    
|
|
71
71
|
  
|
|
72
72
|
|
|
73
73
|
- 🤖 **LLM usage:** $7.5000 (154 commits)
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
## AI Cost Tracking
|
|
5
5
|
|
|
6
|
-
    
|
|
7
7
|
  
|
|
8
8
|
|
|
9
9
|
- 🤖 **LLM usage:** $7.5000 (154 commits)
|
|
@@ -8,7 +8,7 @@ Includes NLP Processing Pipeline for query normalization, intent matching,
|
|
|
8
8
|
and entity resolution with multilingual support.
|
|
9
9
|
"""
|
|
10
10
|
|
|
11
|
-
__version__ = "0.5.
|
|
11
|
+
__version__ = "0.5.111"
|
|
12
12
|
__author__ = "STTS Project"
|
|
13
13
|
|
|
14
14
|
# Core analysis components (lightweight, always needed)
|
|
@@ -225,6 +225,17 @@ def _export_calls(args, result, output_dir: Path):
|
|
|
225
225
|
print(f" - CALLS (call graph YAML): {output_dir / 'calls.yaml'}")
|
|
226
226
|
|
|
227
227
|
|
|
228
|
+
def _export_calls_toon(args, result, output_dir: Path):
|
|
229
|
+
"""Export calls.toon.yaml (call graph in human-readable toon format).
|
|
230
|
+
|
|
231
|
+
Generates calls.toon.yaml with hubs, modules, and edges sections.
|
|
232
|
+
"""
|
|
233
|
+
yaml_exporter = YAMLExporter()
|
|
234
|
+
yaml_exporter.export_calls_toon(result, str(output_dir / 'calls.toon.yaml'))
|
|
235
|
+
if args.verbose:
|
|
236
|
+
print(f" - CALLS (toon format): {output_dir / 'calls.toon.yaml'}")
|
|
237
|
+
|
|
238
|
+
|
|
228
239
|
def _export_mermaid(args, result, output_dir: Path):
|
|
229
240
|
"""Export Mermaid diagrams + optional PNG generation.
|
|
230
241
|
|
|
@@ -252,3 +252,75 @@ class YAMLExporter(Exporter):
|
|
|
252
252
|
if isinstance(fi.complexity, dict):
|
|
253
253
|
return fi.complexity.get('cyclomatic_complexity', 0)
|
|
254
254
|
return fi.complexity or 0
|
|
255
|
+
|
|
256
|
+
def export_calls_toon(self, result: AnalysisResult, output_path: str, max_calls_per_func: int = 10, max_edges: int = 500) -> None:
|
|
257
|
+
"""Export call graph as toon.yaml format (human-readable).
|
|
258
|
+
|
|
259
|
+
Generates a human-readable toon format with:
|
|
260
|
+
- Header with project stats
|
|
261
|
+
- HUBS: high-degree functions (many calls in/out)
|
|
262
|
+
- CHAINS: call chains/paths
|
|
263
|
+
- MODULES: functions grouped by module with call relationships
|
|
264
|
+
"""
|
|
265
|
+
connected, edges = self._collect_edges(result, max_calls_per_func, max_edges)
|
|
266
|
+
nodes = self._build_nodes(result, connected)
|
|
267
|
+
modules = self._group_by_module(result, connected)
|
|
268
|
+
|
|
269
|
+
# Build toon format sections
|
|
270
|
+
lines = []
|
|
271
|
+
lines.extend(self._render_calls_header(result, nodes, edges, modules))
|
|
272
|
+
lines.append("")
|
|
273
|
+
lines.extend(self._render_hubs(nodes))
|
|
274
|
+
lines.append("")
|
|
275
|
+
lines.extend(self._render_modules(modules, nodes, edges))
|
|
276
|
+
lines.append("")
|
|
277
|
+
lines.extend(self._render_edges(edges))
|
|
278
|
+
|
|
279
|
+
Path(output_path).parent.mkdir(parents=True, exist_ok=True)
|
|
280
|
+
with open(output_path, 'w', encoding='utf-8') as f:
|
|
281
|
+
f.write('\n'.join(lines) + '\n')
|
|
282
|
+
|
|
283
|
+
def _render_calls_header(self, result: AnalysisResult, nodes: Dict, edges: List, modules: Dict) -> List[str]:
|
|
284
|
+
"""Render header section for calls.toon.yaml."""
|
|
285
|
+
nfuncs = len(result.functions)
|
|
286
|
+
all_cc = [self._get_cc(fi) for fi in result.functions.values()]
|
|
287
|
+
avg_cc = round(sum(all_cc) / len(all_cc), 1) if all_cc else 0.0
|
|
288
|
+
|
|
289
|
+
return [
|
|
290
|
+
f"# code2llm call graph | {result.project_path}",
|
|
291
|
+
f"# nodes: {len(nodes)} | edges: {len(edges)} | modules: {len(modules)}",
|
|
292
|
+
f"# CC̄={avg_cc}",
|
|
293
|
+
]
|
|
294
|
+
|
|
295
|
+
def _render_hubs(self, nodes: Dict) -> List[str]:
|
|
296
|
+
"""Render high-degree hub functions (sorted by total calls)."""
|
|
297
|
+
hubs = sorted(
|
|
298
|
+
[(name, data) for name, data in nodes.items()],
|
|
299
|
+
key=lambda x: x[1]['calls_in'] + x[1]['calls_out'],
|
|
300
|
+
reverse=True
|
|
301
|
+
)[:20]
|
|
302
|
+
|
|
303
|
+
lines = ['HUBS[20]:']
|
|
304
|
+
for name, data in hubs:
|
|
305
|
+
total_calls = data['calls_in'] + data['calls_out']
|
|
306
|
+
lines.append(f" {name}")
|
|
307
|
+
lines.append(f" CC={data['cyclomatic_complexity']} in:{data['calls_in']} out:{data['calls_out']} total:{total_calls}")
|
|
308
|
+
return lines
|
|
309
|
+
|
|
310
|
+
def _render_modules(self, modules: Dict, nodes: Dict, edges: List) -> List[str]:
|
|
311
|
+
"""Render modules section with functions and call relationships."""
|
|
312
|
+
lines = ['MODULES:']
|
|
313
|
+
for module, funcs in sorted(modules.items()):
|
|
314
|
+
lines.append(f" {module} [{len(funcs)} funcs]")
|
|
315
|
+
for func in funcs[:10]: # Show up to 10 funcs per module
|
|
316
|
+
if func in nodes:
|
|
317
|
+
data = nodes[func]
|
|
318
|
+
lines.append(f" {data['name']} CC={data['cyclomatic_complexity']} out:{data['calls_out']}")
|
|
319
|
+
return lines
|
|
320
|
+
|
|
321
|
+
def _render_edges(self, edges: List) -> List[str]:
|
|
322
|
+
"""Render call edges section."""
|
|
323
|
+
lines = ['EDGES:']
|
|
324
|
+
for edge in edges[:50]: # Show up to 50 edges
|
|
325
|
+
lines.append(f" {edge['caller']} → {edge['callee']}")
|
|
326
|
+
return lines
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code2llm
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.111
|
|
4
4
|
Summary: High-performance Python code flow analysis with optimized TOON format - CFG, DFG, call graphs, and intelligent code queries
|
|
5
5
|
Home-page: https://github.com/wronai/stts
|
|
6
6
|
Author: STTS Project
|
|
@@ -67,7 +67,7 @@ Dynamic: requires-python
|
|
|
67
67
|
|
|
68
68
|
## AI Cost Tracking
|
|
69
69
|
|
|
70
|
-
    
|
|
71
71
|
  
|
|
72
72
|
|
|
73
73
|
- 🤖 **LLM usage:** $7.5000 (154 commits)
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "code2llm"
|
|
7
|
-
version = "0.5.
|
|
7
|
+
version = "0.5.111"
|
|
8
8
|
description = "High-performance Python code flow analysis with optimized TOON format - CFG, DFG, call graphs, and intelligent code queries"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.8"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|