sourcecode 1.42.0__tar.gz → 1.44.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-1.42.0 → sourcecode-1.44.0}/CHANGELOG.md +38 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/PKG-INFO +3 -3
- {sourcecode-1.42.0 → sourcecode-1.44.0}/README.md +2 -2
- {sourcecode-1.42.0 → sourcecode-1.44.0}/pyproject.toml +1 -1
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/__init__.py +1 -1
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/repository_ir.py +26 -3
- {sourcecode-1.42.0 → sourcecode-1.44.0}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/.gitignore +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/.ruff.toml +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/CONTRIBUTING.md +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/LICENSE +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/SECURITY.md +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/raw +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/architecture_analyzer.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/cache.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/canonical_ir.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/cir_graphs.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/classifier.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/cli.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/detectors/java.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/error_schema.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/explain.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/file_chunker.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/flow_analyzer.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/format_contract.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/fqn_utils.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/license.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/mcp/__init__.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/mcp/onboarding/applier.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/mcp/onboarding/backup.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/mcp/onboarding/detector.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/mcp/onboarding/planner.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/mcp/orchestrator.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/mcp/registry.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/mcp/runner.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/mcp/server.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/mcp_nudge.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/migrate_check.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/openapi_surface.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/output_budget.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/path_filters.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/pr_comment_renderer.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/pr_impact.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/prepare_context.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/progress.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/redactor.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/rename_refactor.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/ris.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/scanner.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/schema.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/security_config.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/serializer.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/spring_event_topology.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/spring_findings.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/spring_impact.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/spring_model.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/spring_security_audit.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/spring_semantic.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/spring_tx_analyzer.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/summarizer.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/telemetry/consent.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/validation_surface.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/version_check.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/src/sourcecode/workspace.py +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/supabase/functions/README.md +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/supabase/functions/get-license/index.ts +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/supabase/functions/lemonsqueezy-webhook/index.ts +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/supabase/functions/telemetry/index.ts +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/supabase/sql/license_event_ordering.sql +0 -0
- {sourcecode-1.42.0 → sourcecode-1.44.0}/supabase/sql/telemetry_events.sql +0 -0
|
@@ -1,5 +1,43 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.44.0] — 2026-06-16
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- **CH-004c — annotation-free structural classes dropped their inheritance edges.**
|
|
7
|
+
`build_repo_ir`'s fast pre-scan skips files with no recognized annotation marker,
|
|
8
|
+
emitting only minimal class-name symbols (for same-package resolution) and **no
|
|
9
|
+
relations**. A class with no annotation and no injected field of its own that
|
|
10
|
+
participates purely structurally — `class X extends Base implements I {}` — therefore
|
|
11
|
+
lost its `extends`/`implements` edges, so `implementation_graph` could not link
|
|
12
|
+
sub→supertype and impact analysis could not traverse the hierarchy. The pre-scan now
|
|
13
|
+
also keeps a file when a type declaration carries an `extends`/`implements` clause
|
|
14
|
+
(`_INHERIT_PRESCAN_RE`), routing it through full extraction so its inheritance edges
|
|
15
|
+
are built and resolved in pass 2 with the same-package map. Annotation-free leaf
|
|
16
|
+
classes with no inheritance still skip, preserving the pre-scan optimization. Closes
|
|
17
|
+
the last open layer of CH-004 (a/b shipped in 1.43.0).
|
|
18
|
+
|
|
19
|
+
## [1.43.0] — 2026-06-16
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
- **CH-004a — impact graph dropped field-injection-only classes.** `build_repo_ir`'s fast
|
|
23
|
+
pre-scan skips files with no recognized annotation marker; the marker set included
|
|
24
|
+
`@Inject` but not `@Autowired`, `@Resource`, `@Qualifier`, or `@Value`. A class wired
|
|
25
|
+
purely by field injection with no class-level stereotype (e.g. an abstract base controller
|
|
26
|
+
that holds the services its concrete subclasses inherit) was skipped entirely, so its
|
|
27
|
+
`injects` edges never existed and `impact-chain` could not traverse through it. Added the
|
|
28
|
+
field/setter-injection annotations (`@Autowired`, `@Resource`, `@Qualifier`, `@Value`,
|
|
29
|
+
`@PersistenceContext`, `@PersistenceUnit`) to the pre-scan marker set.
|
|
30
|
+
- **CH-004b — same-package supertypes were not FQN-resolved.** The `extends`/`implements`
|
|
31
|
+
edge builder resolved supertype names only via `import_map`, so a same-package
|
|
32
|
+
`extends Base` (which needs no Java import) produced a **bare-name** edge target. The
|
|
33
|
+
`implementation_graph` could then not link sub→supertype, making same-package class
|
|
34
|
+
hierarchies invisible to impact analysis. Supertypes are now resolved via
|
|
35
|
+
`_resolve_dep_type` (import + same-package + wildcard), matching `injects`/constructor edges.
|
|
36
|
+
|
|
37
|
+
Both fixes were surfaced by a field test on BroadleafCommerce (2985-file monolith); they
|
|
38
|
+
under-reported blast radius on any large repo, not just that one. See
|
|
39
|
+
`docs/eval/2026-06-16-broadleaf-checkout-impact-fieldtest.md`.
|
|
40
|
+
|
|
3
41
|
## [1.42.0] — 2026-06-16
|
|
4
42
|
|
|
5
43
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sourcecode
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.44.0
|
|
4
4
|
Summary: Persistent structural context and ultra-fast repeated analysis for AI coding agents
|
|
5
5
|
License-File: LICENSE
|
|
6
6
|
Keywords: agents,ai,codebase,context,developer-tools,llm
|
|
@@ -40,7 +40,7 @@ Description-Content-Type: text/markdown
|
|
|
40
40
|
|
|
41
41
|
**Persistent structural context and ultra-fast repeated analysis for AI coding agents.**
|
|
42
42
|
|
|
43
|
-

|
|
44
44
|

|
|
45
45
|
|
|
46
46
|
---
|
|
@@ -114,7 +114,7 @@ pipx install sourcecode
|
|
|
114
114
|
|
|
115
115
|
```bash
|
|
116
116
|
sourcecode version
|
|
117
|
-
# sourcecode 1.
|
|
117
|
+
# sourcecode 1.44.0
|
|
118
118
|
```
|
|
119
119
|
|
|
120
120
|
---
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
**Persistent structural context and ultra-fast repeated analysis for AI coding agents.**
|
|
4
4
|
|
|
5
|
-

|
|
6
6
|

|
|
7
7
|
|
|
8
8
|
---
|
|
@@ -76,7 +76,7 @@ pipx install sourcecode
|
|
|
76
76
|
|
|
77
77
|
```bash
|
|
78
78
|
sourcecode version
|
|
79
|
-
# sourcecode 1.
|
|
79
|
+
# sourcecode 1.44.0
|
|
80
80
|
```
|
|
81
81
|
|
|
82
82
|
---
|
|
@@ -131,6 +131,15 @@ _CLASS_DECL_RE = re.compile(
|
|
|
131
131
|
r'\s*\{',
|
|
132
132
|
)
|
|
133
133
|
|
|
134
|
+
# CH-004c: detect a type declaration that participates structurally via inheritance
|
|
135
|
+
# (`class X extends Base` / `interface I extends A` / `class C implements I`). Used by
|
|
136
|
+
# the fast pre-scan to NOT skip annotation-free files that still own extends/implements
|
|
137
|
+
# edges the impact graph needs. `[^{;]*?` keeps the match within a single declaration
|
|
138
|
+
# head (stops at the body `{` or a `;`), matching the precision of _CLASS_DECL_RE.
|
|
139
|
+
_INHERIT_PRESCAN_RE = re.compile(
|
|
140
|
+
r'\b(?:class|interface)\s+[A-Z]\w*[^{;]*?\b(?:extends|implements)\b'
|
|
141
|
+
)
|
|
142
|
+
|
|
134
143
|
_METHOD_DECL_RE = re.compile(
|
|
135
144
|
r'^(?P<modifiers>(?:(?:public|private|protected|static|final|synchronized'
|
|
136
145
|
r'|abstract|default|native|strictfp|override)\s+)*)'
|
|
@@ -1265,7 +1274,11 @@ def _build_relations(
|
|
|
1265
1274
|
# commas so each base produces its own edge and the reverse graph sees
|
|
1266
1275
|
# every supertype (not a single mangled token).
|
|
1267
1276
|
for base in _split_supertype_list(extends_str):
|
|
1268
|
-
|
|
1277
|
+
# CH-004: resolve same-package / wildcard-imported supertypes to their
|
|
1278
|
+
# FQN (not just import_map), else a same-package `extends Base` stays a
|
|
1279
|
+
# bare name and the implementation_graph cannot link sub→supertype.
|
|
1280
|
+
_sbase = re.sub(r'<.*', '', base).strip()
|
|
1281
|
+
to = _resolve_dep_type(_sbase) or import_map.get(_sbase, base)
|
|
1269
1282
|
edges.append(RelationEdge(
|
|
1270
1283
|
from_symbol=class_fqn,
|
|
1271
1284
|
to_symbol=to,
|
|
@@ -1276,7 +1289,8 @@ def _build_relations(
|
|
|
1276
1289
|
|
|
1277
1290
|
if implements_str:
|
|
1278
1291
|
for base in _split_supertype_list(implements_str):
|
|
1279
|
-
|
|
1292
|
+
_sbase = re.sub(r'<.*', '', base).strip()
|
|
1293
|
+
to = _resolve_dep_type(_sbase) or import_map.get(_sbase, base)
|
|
1280
1294
|
edges.append(RelationEdge(
|
|
1281
1295
|
from_symbol=class_fqn,
|
|
1282
1296
|
to_symbol=to,
|
|
@@ -3127,6 +3141,14 @@ def build_repo_ir(
|
|
|
3127
3141
|
'@RequiredArgsConstructor', '@AllArgsConstructor',
|
|
3128
3142
|
'@Inject', '@ApplicationScoped', '@RequestScoped', '@Singleton',
|
|
3129
3143
|
'@EnableMethodSecurity', '@EnableGlobalMethodSecurity',
|
|
3144
|
+
# Field/setter injection markers (CH-004). A class wired purely by field
|
|
3145
|
+
# injection — no class-level stereotype — is still a node in the DI graph:
|
|
3146
|
+
# e.g. an abstract base controller that holds @Autowired/@Resource services
|
|
3147
|
+
# its concrete subclasses inherit. Omitting these pre-scan-skips such classes,
|
|
3148
|
+
# dropping their injects edges, so impact-chain cannot reach callers through
|
|
3149
|
+
# them (Broadleaf: AbstractCheckoutController → checkout endpoints went missing).
|
|
3150
|
+
'@Autowired', '@Resource', '@Qualifier', '@Value',
|
|
3151
|
+
'@PersistenceContext', '@PersistenceUnit',
|
|
3130
3152
|
# JPA / persistence (needed for stereotype detection in all commands)
|
|
3131
3153
|
'@Entity', '@MappedSuperclass', '@Embeddable',
|
|
3132
3154
|
# AOP / messaging / event sourcing
|
|
@@ -3173,7 +3195,8 @@ def build_repo_ir(
|
|
|
3173
3195
|
_meta_chars_read += len(source)
|
|
3174
3196
|
# Fast pre-scan: if file has no relevant annotations skip full extraction.
|
|
3175
3197
|
# Still register package/class name for same-package resolution.
|
|
3176
|
-
if not any(marker in source for marker in _effective_markers)
|
|
3198
|
+
if not any(marker in source for marker in _effective_markers) \
|
|
3199
|
+
and not _INHERIT_PRESCAN_RE.search(source):
|
|
3177
3200
|
pkg_m = _PKG_RE.search(source)
|
|
3178
3201
|
_pkg = pkg_m.group(1) if pkg_m else ""
|
|
3179
3202
|
# Minimal class-name symbols for same-package map (no methods/fields)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|