detectkit 0.52.0__tar.gz → 0.52.1__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.
- {detectkit-0.52.0/detectkit.egg-info → detectkit-0.52.1}/PKG-INFO +1 -1
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/__init__.py +1 -1
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/rules/alerting.md +1 -1
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/rules/overview.md +5 -1
- {detectkit-0.52.0 → detectkit-0.52.1/detectkit.egg-info}/PKG-INFO +1 -1
- {detectkit-0.52.0 → detectkit-0.52.1}/LICENSE +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/MANIFEST.in +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/README.md +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/__init__.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/channels/__init__.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/channels/base.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/channels/branding.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/channels/email.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/channels/factory.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/channels/mattermost.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/channels/slack.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/channels/telegram.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/channels/webhook.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/orchestrator/__init__.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/orchestrator/_base.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/orchestrator/_cooldown.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/orchestrator/_decision.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/orchestrator/_dispatch.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/orchestrator/_recovery.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/orchestrator/_replay.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/orchestrator/_types.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/orchestrator/orchestrator.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/__init__.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/_base.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/_types.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/autotuner.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/config_emitter.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/crossval.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/detector_select.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/distribution.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/grid_search.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/labels.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/result.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/runner.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/scoring.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/seasonality_search.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/settings.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/window_select.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/__init__.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/_output.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/CLAUDE.section.md +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/rules/autotune.md +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/rules/cli.md +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/rules/detectors.md +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/rules/metrics.md +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/rules/project.md +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/skills/dtk-autotune/SKILL.md +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/skills/dtk-feedback/SKILL.md +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/skills/dtk-new-metric/SKILL.md +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/skills/dtk-setup-project/SKILL.md +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/skills/dtk-tune/SKILL.md +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/commands/__init__.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/commands/autotune.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/commands/clean.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/commands/init.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/commands/init_claude.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/commands/osi.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/commands/run.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/commands/test_alert.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/commands/tune.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/commands/ui.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/commands/unlock.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/main.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/config/__init__.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/config/metric_config.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/config/metric_io.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/config/profile.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/config/project_config.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/config/validator.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/core/__init__.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/core/interval.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/core/models.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/__init__.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/_sql_manager.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/clickhouse_manager.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/internal_tables/__init__.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/internal_tables/_alert_states.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/internal_tables/_autotune_runs.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/internal_tables/_base.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/internal_tables/_datapoints.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/internal_tables/_detections.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/internal_tables/_maintenance.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/internal_tables/_metrics.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/internal_tables/_schema.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/internal_tables/_tasks.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/internal_tables/manager.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/manager.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/mysql_manager.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/postgres_manager.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/tables.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/detectors/__init__.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/detectors/base.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/detectors/factory.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/detectors/seasonality.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/detectors/statistical/__init__.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/detectors/statistical/_windowed.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/detectors/statistical/autoreg.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/detectors/statistical/iqr.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/detectors/statistical/mad.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/detectors/statistical/manual_bounds.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/detectors/statistical/zscore.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/loaders/__init__.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/loaders/metric_loader.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/loaders/query_template.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/orchestration/__init__.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/orchestration/error_dispatch.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/orchestration/task_manager/__init__.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/orchestration/task_manager/_alert_step.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/orchestration/task_manager/_base.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/orchestration/task_manager/_detect_step.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/orchestration/task_manager/_load_step.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/orchestration/task_manager/_types.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/orchestration/task_manager/manager.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/reporting/__init__.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/reporting/assets/report.js +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/reporting/builder.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/reporting/html_report.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/semantic/__init__.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/semantic/errors.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/semantic/exporter.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/semantic/importer.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/semantic/osi_model.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/semantic/query_gen.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/tuning/__init__.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/tuning/assets/tune.js +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/tuning/config_writer.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/tuning/html.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/tuning/payload.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/tuning/server.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/ui/__init__.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/ui/assets/ui.js +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/ui/html.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/ui/jobs.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/ui/metric_files.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/ui/overview.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/ui/server.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/utils/__init__.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/utils/datetime_utils.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/utils/env_interpolation.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/utils/json_utils.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/utils/stats.py +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit.egg-info/SOURCES.txt +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit.egg-info/dependency_links.txt +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit.egg-info/entry_points.txt +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit.egg-info/requires.txt +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/detectkit.egg-info/top_level.txt +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/pyproject.toml +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/requirements.txt +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/setup.cfg +0 -0
- {detectkit-0.52.0 → detectkit-0.52.1}/setup.py +0 -0
|
@@ -4,7 +4,7 @@ detectk - Anomaly Detection for Time-Series Metrics
|
|
|
4
4
|
A Python library for data analysts and engineers to monitor metrics with automatic anomaly detection.
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
|
-
__version__ = "0.52.
|
|
7
|
+
__version__ = "0.52.1"
|
|
8
8
|
|
|
9
9
|
from detectkit.core.interval import Interval
|
|
10
10
|
from detectkit.core.models import ColumnDefinition, TableModel
|
|
@@ -360,7 +360,7 @@ referenced by path). Key variables:
|
|
|
360
360
|
| `{expected_range}` | one-sided-aware band (`>= 7.00`, `<= 1.10`, `[lo, hi]`, `N/A`) |
|
|
361
361
|
| `{detector_name}`, `{detector_count}` | who fired (`"N detectors"` for multi) |
|
|
362
362
|
| `{min_detectors}` / `{direction_policy}` / `{consecutive_required}` | the configured rule |
|
|
363
|
-
| `{rule_display}` | full rule chip (legacy `min_detectors=… · direction=… · consecutive=…`, or also naming `anomaly_window`/`min_anomaly_share` when configured
|
|
363
|
+
| `{rule_display}` | full rule chip (legacy `min_detectors=… · direction=… · consecutive=…`, or also naming `anomaly_window`/`min_anomaly_share` when configured — on recovery too, so fire and recovery name one rule) |
|
|
364
364
|
| `{window_points}` / `{window_matched}` | fraction-rule window size / matched count (empty unless configured / fired by it) |
|
|
365
365
|
| `{direction}`, `{severity}` | observed values |
|
|
366
366
|
| `{consecutive_count}` | **true** streak length (resolved at fire time, not capped at the rule) |
|
|
@@ -68,6 +68,8 @@ separate from the `data_database` your queries read from.
|
|
|
68
68
|
- `zscore` — mean/std; for clean, normally distributed data.
|
|
69
69
|
- `iqr` — interquartile range; for skewed distributions / percentile metrics.
|
|
70
70
|
- `manual_bounds` — fixed upper/lower thresholds (SLAs); no window, instant.
|
|
71
|
+
- `autoreg` — prediction-based AR(p) on a trailing window; for fast-moving,
|
|
72
|
+
non-seasonal metrics and shape anomalies; stabilization on by default.
|
|
71
73
|
|
|
72
74
|
`mad`, `zscore`, `iqr` share one windowed implementation, so they accept an
|
|
73
75
|
identical parameter set (window, seasonality grouping, preprocessing, recency
|
|
@@ -78,7 +80,9 @@ weighting, detrending). See `detectors.md`.
|
|
|
78
80
|
An **alert** is the primary entity; a detector anomaly is secondary evidence
|
|
79
81
|
that a rule interprets. The rule is a per-point **quorum** (`min_detectors`
|
|
80
82
|
detectors agreeing under a `direction` policy) that must hold for
|
|
81
|
-
`consecutive_anomalies` grid-adjacent points
|
|
83
|
+
`consecutive_anomalies` grid-adjacent points — or, optionally, for a share of
|
|
84
|
+
a trailing window (`anomaly_window` + `min_anomaly_share`, OR-ed with the
|
|
85
|
+
consecutive rule). Notifications lead with the alert
|
|
82
86
|
and the rule it fired on, with the anomaly shown as evidence. See
|
|
83
87
|
`alerting.md`.
|
|
84
88
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/skills/dtk-autotune/SKILL.md
RENAMED
|
File without changes
|
{detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/skills/dtk-feedback/SKILL.md
RENAMED
|
File without changes
|
{detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/skills/dtk-new-metric/SKILL.md
RENAMED
|
File without changes
|
{detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/skills/dtk-setup-project/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|