tweek 0.4.0__tar.gz → 0.4.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.
Files changed (198) hide show
  1. {tweek-0.4.0/tweek.egg-info → tweek-0.4.1}/PKG-INFO +1 -1
  2. {tweek-0.4.0 → tweek-0.4.1}/pyproject.toml +1 -1
  3. {tweek-0.4.0 → tweek-0.4.1}/tweek/__init__.py +1 -1
  4. {tweek-0.4.0 → tweek-0.4.1}/tweek/security/llm_reviewer.py +8 -6
  5. {tweek-0.4.0 → tweek-0.4.1/tweek.egg-info}/PKG-INFO +1 -1
  6. {tweek-0.4.0 → tweek-0.4.1}/LICENSE +0 -0
  7. {tweek-0.4.0 → tweek-0.4.1}/NOTICE +0 -0
  8. {tweek-0.4.0 → tweek-0.4.1}/README.md +0 -0
  9. {tweek-0.4.0 → tweek-0.4.1}/setup.cfg +0 -0
  10. {tweek-0.4.0 → tweek-0.4.1}/tests/test_approval_queue.py +0 -0
  11. {tweek-0.4.0 → tweek-0.4.1}/tests/test_audit.py +0 -0
  12. {tweek-0.4.0 → tweek-0.4.1}/tests/test_break_glass.py +0 -0
  13. {tweek-0.4.0 → tweek-0.4.1}/tests/test_cli.py +0 -0
  14. {tweek-0.4.0 → tweek-0.4.1}/tests/test_cli_configure.py +0 -0
  15. {tweek-0.4.0 → tweek-0.4.1}/tests/test_cli_helpers.py +0 -0
  16. {tweek-0.4.0 → tweek-0.4.1}/tests/test_config_manager.py +0 -0
  17. {tweek-0.4.0 → tweek-0.4.1}/tests/test_config_models.py +0 -0
  18. {tweek-0.4.0 → tweek-0.4.1}/tests/test_config_templates.py +0 -0
  19. {tweek-0.4.0 → tweek-0.4.1}/tests/test_credential_scanner.py +0 -0
  20. {tweek-0.4.0 → tweek-0.4.1}/tests/test_diagnostics.py +0 -0
  21. {tweek-0.4.0 → tweek-0.4.1}/tests/test_enforcement.py +0 -0
  22. {tweek-0.4.0 → tweek-0.4.1}/tests/test_feedback.py +0 -0
  23. {tweek-0.4.0 → tweek-0.4.1}/tests/test_heuristic_scorer.py +0 -0
  24. {tweek-0.4.0 → tweek-0.4.1}/tests/test_installer_improvements.py +0 -0
  25. {tweek-0.4.0 → tweek-0.4.1}/tests/test_language_detection.py +0 -0
  26. {tweek-0.4.0 → tweek-0.4.1}/tests/test_licensing.py +0 -0
  27. {tweek-0.4.0 → tweek-0.4.1}/tests/test_llm_local.py +0 -0
  28. {tweek-0.4.0 → tweek-0.4.1}/tests/test_llm_reviewer.py +0 -0
  29. {tweek-0.4.0 → tweek-0.4.1}/tests/test_local_model.py +0 -0
  30. {tweek-0.4.0 → tweek-0.4.1}/tests/test_log_bundle.py +0 -0
  31. {tweek-0.4.0 → tweek-0.4.1}/tests/test_logging.py +0 -0
  32. {tweek-0.4.0 → tweek-0.4.1}/tests/test_logging_enhanced.py +0 -0
  33. {tweek-0.4.0 → tweek-0.4.1}/tests/test_mcp_clients.py +0 -0
  34. {tweek-0.4.0 → tweek-0.4.1}/tests/test_mcp_proxy.py +0 -0
  35. {tweek-0.4.0 → tweek-0.4.1}/tests/test_memory_scoped.py +0 -0
  36. {tweek-0.4.0 → tweek-0.4.1}/tests/test_openclaw_integration.py +0 -0
  37. {tweek-0.4.0 → tweek-0.4.1}/tests/test_overrides.py +0 -0
  38. {tweek-0.4.0 → tweek-0.4.1}/tests/test_path_boundary.py +0 -0
  39. {tweek-0.4.0 → tweek-0.4.1}/tests/test_pattern_families.py +0 -0
  40. {tweek-0.4.0 → tweek-0.4.1}/tests/test_pattern_matcher_redos.py +0 -0
  41. {tweek-0.4.0 → tweek-0.4.1}/tests/test_patterns.py +0 -0
  42. {tweek-0.4.0 → tweek-0.4.1}/tests/test_plugin_scoping.py +0 -0
  43. {tweek-0.4.0 → tweek-0.4.1}/tests/test_post_tool_use.py +0 -0
  44. {tweek-0.4.0 → tweek-0.4.1}/tests/test_prompt_injection_patterns.py +0 -0
  45. {tweek-0.4.0 → tweek-0.4.1}/tests/test_property_based.py +0 -0
  46. {tweek-0.4.0 → tweek-0.4.1}/tests/test_protect_command.py +0 -0
  47. {tweek-0.4.0 → tweek-0.4.1}/tests/test_provenance.py +0 -0
  48. {tweek-0.4.0 → tweek-0.4.1}/tests/test_provenance_integration.py +0 -0
  49. {tweek-0.4.0 → tweek-0.4.1}/tests/test_proxy_detection.py +0 -0
  50. {tweek-0.4.0 → tweek-0.4.1}/tests/test_rate_limiter.py +0 -0
  51. {tweek-0.4.0 → tweek-0.4.1}/tests/test_redaction.py +0 -0
  52. {tweek-0.4.0 → tweek-0.4.1}/tests/test_screening_context.py +0 -0
  53. {tweek-0.4.0 → tweek-0.4.1}/tests/test_session_analyzer.py +0 -0
  54. {tweek-0.4.0 → tweek-0.4.1}/tests/test_skill_context.py +0 -0
  55. {tweek-0.4.0 → tweek-0.4.1}/tests/test_tiered_help.py +0 -0
  56. {tweek-0.4.0 → tweek-0.4.1}/tests/test_vault_cross_platform.py +0 -0
  57. {tweek-0.4.0 → tweek-0.4.1}/tweek/_keygen.py +0 -0
  58. {tweek-0.4.0 → tweek-0.4.1}/tweek/audit.py +0 -0
  59. {tweek-0.4.0 → tweek-0.4.1}/tweek/cli.py +0 -0
  60. {tweek-0.4.0 → tweek-0.4.1}/tweek/cli_config.py +0 -0
  61. {tweek-0.4.0 → tweek-0.4.1}/tweek/cli_configure.py +0 -0
  62. {tweek-0.4.0 → tweek-0.4.1}/tweek/cli_core.py +0 -0
  63. {tweek-0.4.0 → tweek-0.4.1}/tweek/cli_dry_run.py +0 -0
  64. {tweek-0.4.0 → tweek-0.4.1}/tweek/cli_helpers.py +0 -0
  65. {tweek-0.4.0 → tweek-0.4.1}/tweek/cli_install.py +0 -0
  66. {tweek-0.4.0 → tweek-0.4.1}/tweek/cli_logs.py +0 -0
  67. {tweek-0.4.0 → tweek-0.4.1}/tweek/cli_mcp.py +0 -0
  68. {tweek-0.4.0 → tweek-0.4.1}/tweek/cli_memory.py +0 -0
  69. {tweek-0.4.0 → tweek-0.4.1}/tweek/cli_model.py +0 -0
  70. {tweek-0.4.0 → tweek-0.4.1}/tweek/cli_plugins.py +0 -0
  71. {tweek-0.4.0 → tweek-0.4.1}/tweek/cli_protect.py +0 -0
  72. {tweek-0.4.0 → tweek-0.4.1}/tweek/cli_proxy.py +0 -0
  73. {tweek-0.4.0 → tweek-0.4.1}/tweek/cli_security.py +0 -0
  74. {tweek-0.4.0 → tweek-0.4.1}/tweek/cli_skills.py +0 -0
  75. {tweek-0.4.0 → tweek-0.4.1}/tweek/cli_uninstall.py +0 -0
  76. {tweek-0.4.0 → tweek-0.4.1}/tweek/cli_vault.py +0 -0
  77. {tweek-0.4.0 → tweek-0.4.1}/tweek/config/__init__.py +0 -0
  78. {tweek-0.4.0 → tweek-0.4.1}/tweek/config/allowed_dirs.yaml +0 -0
  79. {tweek-0.4.0 → tweek-0.4.1}/tweek/config/families.yaml +0 -0
  80. {tweek-0.4.0 → tweek-0.4.1}/tweek/config/manager.py +0 -0
  81. {tweek-0.4.0 → tweek-0.4.1}/tweek/config/models.py +0 -0
  82. {tweek-0.4.0 → tweek-0.4.1}/tweek/config/patterns.yaml +0 -0
  83. {tweek-0.4.0 → tweek-0.4.1}/tweek/config/templates/config.yaml.template +0 -0
  84. {tweek-0.4.0 → tweek-0.4.1}/tweek/config/templates/env.template +0 -0
  85. {tweek-0.4.0 → tweek-0.4.1}/tweek/config/templates/overrides.yaml.template +0 -0
  86. {tweek-0.4.0 → tweek-0.4.1}/tweek/config/templates/tweek.yaml.template +0 -0
  87. {tweek-0.4.0 → tweek-0.4.1}/tweek/config/templates.py +0 -0
  88. {tweek-0.4.0 → tweek-0.4.1}/tweek/config/tiers.yaml +0 -0
  89. {tweek-0.4.0 → tweek-0.4.1}/tweek/diagnostics.py +0 -0
  90. {tweek-0.4.0 → tweek-0.4.1}/tweek/hooks/__init__.py +0 -0
  91. {tweek-0.4.0 → tweek-0.4.1}/tweek/hooks/break_glass.py +0 -0
  92. {tweek-0.4.0 → tweek-0.4.1}/tweek/hooks/feedback.py +0 -0
  93. {tweek-0.4.0 → tweek-0.4.1}/tweek/hooks/overrides.py +0 -0
  94. {tweek-0.4.0 → tweek-0.4.1}/tweek/hooks/post_tool_use.py +0 -0
  95. {tweek-0.4.0 → tweek-0.4.1}/tweek/hooks/pre_tool_use.py +0 -0
  96. {tweek-0.4.0 → tweek-0.4.1}/tweek/integrations/__init__.py +0 -0
  97. {tweek-0.4.0 → tweek-0.4.1}/tweek/integrations/openclaw.py +0 -0
  98. {tweek-0.4.0 → tweek-0.4.1}/tweek/integrations/openclaw_server.py +0 -0
  99. {tweek-0.4.0 → tweek-0.4.1}/tweek/licensing.py +0 -0
  100. {tweek-0.4.0 → tweek-0.4.1}/tweek/logging/__init__.py +0 -0
  101. {tweek-0.4.0 → tweek-0.4.1}/tweek/logging/bundle.py +0 -0
  102. {tweek-0.4.0 → tweek-0.4.1}/tweek/logging/json_logger.py +0 -0
  103. {tweek-0.4.0 → tweek-0.4.1}/tweek/logging/security_log.py +0 -0
  104. {tweek-0.4.0 → tweek-0.4.1}/tweek/mcp/__init__.py +0 -0
  105. {tweek-0.4.0 → tweek-0.4.1}/tweek/mcp/approval.py +0 -0
  106. {tweek-0.4.0 → tweek-0.4.1}/tweek/mcp/approval_cli.py +0 -0
  107. {tweek-0.4.0 → tweek-0.4.1}/tweek/mcp/clients/__init__.py +0 -0
  108. {tweek-0.4.0 → tweek-0.4.1}/tweek/mcp/clients/chatgpt.py +0 -0
  109. {tweek-0.4.0 → tweek-0.4.1}/tweek/mcp/clients/claude_desktop.py +0 -0
  110. {tweek-0.4.0 → tweek-0.4.1}/tweek/mcp/clients/gemini.py +0 -0
  111. {tweek-0.4.0 → tweek-0.4.1}/tweek/mcp/proxy.py +0 -0
  112. {tweek-0.4.0 → tweek-0.4.1}/tweek/mcp/screening.py +0 -0
  113. {tweek-0.4.0 → tweek-0.4.1}/tweek/memory/__init__.py +0 -0
  114. {tweek-0.4.0 → tweek-0.4.1}/tweek/memory/provenance.py +0 -0
  115. {tweek-0.4.0 → tweek-0.4.1}/tweek/memory/queries.py +0 -0
  116. {tweek-0.4.0 → tweek-0.4.1}/tweek/memory/safety.py +0 -0
  117. {tweek-0.4.0 → tweek-0.4.1}/tweek/memory/schemas.py +0 -0
  118. {tweek-0.4.0 → tweek-0.4.1}/tweek/memory/store.py +0 -0
  119. {tweek-0.4.0 → tweek-0.4.1}/tweek/platform/__init__.py +0 -0
  120. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/__init__.py +0 -0
  121. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/base.py +0 -0
  122. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/compliance/__init__.py +0 -0
  123. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/compliance/gdpr.py +0 -0
  124. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/compliance/gov.py +0 -0
  125. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/compliance/hipaa.py +0 -0
  126. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/compliance/legal.py +0 -0
  127. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/compliance/pci.py +0 -0
  128. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/compliance/soc2.py +0 -0
  129. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/detectors/__init__.py +0 -0
  130. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/detectors/continue_dev.py +0 -0
  131. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/detectors/copilot.py +0 -0
  132. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/detectors/cursor.py +0 -0
  133. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/detectors/openclaw.py +0 -0
  134. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/detectors/windsurf.py +0 -0
  135. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/git_discovery.py +0 -0
  136. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/git_installer.py +0 -0
  137. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/git_lockfile.py +0 -0
  138. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/git_registry.py +0 -0
  139. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/git_security.py +0 -0
  140. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/providers/__init__.py +0 -0
  141. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/providers/anthropic.py +0 -0
  142. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/providers/azure_openai.py +0 -0
  143. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/providers/bedrock.py +0 -0
  144. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/providers/google.py +0 -0
  145. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/providers/openai.py +0 -0
  146. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/scope.py +0 -0
  147. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/screening/__init__.py +0 -0
  148. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/screening/heuristic_scorer.py +0 -0
  149. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/screening/llm_reviewer.py +0 -0
  150. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/screening/local_model_reviewer.py +0 -0
  151. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/screening/pattern_matcher.py +0 -0
  152. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/screening/rate_limiter.py +0 -0
  153. {tweek-0.4.0 → tweek-0.4.1}/tweek/plugins/screening/session_analyzer.py +0 -0
  154. {tweek-0.4.0 → tweek-0.4.1}/tweek/proxy/__init__.py +0 -0
  155. {tweek-0.4.0 → tweek-0.4.1}/tweek/proxy/addon.py +0 -0
  156. {tweek-0.4.0 → tweek-0.4.1}/tweek/proxy/interceptor.py +0 -0
  157. {tweek-0.4.0 → tweek-0.4.1}/tweek/proxy/server.py +0 -0
  158. {tweek-0.4.0 → tweek-0.4.1}/tweek/sandbox/__init__.py +0 -0
  159. {tweek-0.4.0 → tweek-0.4.1}/tweek/sandbox/docker_bridge.py +0 -0
  160. {tweek-0.4.0 → tweek-0.4.1}/tweek/sandbox/executor.py +0 -0
  161. {tweek-0.4.0 → tweek-0.4.1}/tweek/sandbox/layers.py +0 -0
  162. {tweek-0.4.0 → tweek-0.4.1}/tweek/sandbox/linux.py +0 -0
  163. {tweek-0.4.0 → tweek-0.4.1}/tweek/sandbox/profile_generator.py +0 -0
  164. {tweek-0.4.0 → tweek-0.4.1}/tweek/sandbox/project.py +0 -0
  165. {tweek-0.4.0 → tweek-0.4.1}/tweek/sandbox/registry.py +0 -0
  166. {tweek-0.4.0 → tweek-0.4.1}/tweek/screening/__init__.py +0 -0
  167. {tweek-0.4.0 → tweek-0.4.1}/tweek/screening/context.py +0 -0
  168. {tweek-0.4.0 → tweek-0.4.1}/tweek/security/__init__.py +0 -0
  169. {tweek-0.4.0 → tweek-0.4.1}/tweek/security/integrity.py +0 -0
  170. {tweek-0.4.0 → tweek-0.4.1}/tweek/security/language.py +0 -0
  171. {tweek-0.4.0 → tweek-0.4.1}/tweek/security/local_model.py +0 -0
  172. {tweek-0.4.0 → tweek-0.4.1}/tweek/security/local_reviewer.py +0 -0
  173. {tweek-0.4.0 → tweek-0.4.1}/tweek/security/model_registry.py +0 -0
  174. {tweek-0.4.0 → tweek-0.4.1}/tweek/security/rate_limiter.py +0 -0
  175. {tweek-0.4.0 → tweek-0.4.1}/tweek/security/secret_scanner.py +0 -0
  176. {tweek-0.4.0 → tweek-0.4.1}/tweek/security/session_analyzer.py +0 -0
  177. {tweek-0.4.0 → tweek-0.4.1}/tweek/skill_template/SKILL.md +0 -0
  178. {tweek-0.4.0 → tweek-0.4.1}/tweek/skill_template/__init__.py +0 -0
  179. {tweek-0.4.0 → tweek-0.4.1}/tweek/skill_template/cli-reference.md +0 -0
  180. {tweek-0.4.0 → tweek-0.4.1}/tweek/skill_template/overrides-reference.md +0 -0
  181. {tweek-0.4.0 → tweek-0.4.1}/tweek/skill_template/scripts/__init__.py +0 -0
  182. {tweek-0.4.0 → tweek-0.4.1}/tweek/skill_template/scripts/check_installed.py +0 -0
  183. {tweek-0.4.0 → tweek-0.4.1}/tweek/skills/__init__.py +0 -0
  184. {tweek-0.4.0 → tweek-0.4.1}/tweek/skills/config.py +0 -0
  185. {tweek-0.4.0 → tweek-0.4.1}/tweek/skills/context.py +0 -0
  186. {tweek-0.4.0 → tweek-0.4.1}/tweek/skills/fingerprints.py +0 -0
  187. {tweek-0.4.0 → tweek-0.4.1}/tweek/skills/guard.py +0 -0
  188. {tweek-0.4.0 → tweek-0.4.1}/tweek/skills/isolation.py +0 -0
  189. {tweek-0.4.0 → tweek-0.4.1}/tweek/skills/scanner.py +0 -0
  190. {tweek-0.4.0 → tweek-0.4.1}/tweek/vault/__init__.py +0 -0
  191. {tweek-0.4.0 → tweek-0.4.1}/tweek/vault/cross_platform.py +0 -0
  192. {tweek-0.4.0 → tweek-0.4.1}/tweek/vault/keychain.py +0 -0
  193. {tweek-0.4.0 → tweek-0.4.1}/tweek-openclaw-plugin/node_modules/flatted/python/flatted.py +0 -0
  194. {tweek-0.4.0 → tweek-0.4.1}/tweek.egg-info/SOURCES.txt +0 -0
  195. {tweek-0.4.0 → tweek-0.4.1}/tweek.egg-info/dependency_links.txt +0 -0
  196. {tweek-0.4.0 → tweek-0.4.1}/tweek.egg-info/entry_points.txt +0 -0
  197. {tweek-0.4.0 → tweek-0.4.1}/tweek.egg-info/requires.txt +0 -0
  198. {tweek-0.4.0 → tweek-0.4.1}/tweek.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tweek
3
- Version: 0.4.0
3
+ Version: 0.4.1
4
4
  Summary: Defense-in-depth security for AI coding assistants - protect credentials, code, and system from prompt injection attacks
5
5
  Author: Tommy Mancino
6
6
  License-Expression: Apache-2.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "tweek"
7
- version = "0.4.0"
7
+ version = "0.4.1"
8
8
  description = "Defense-in-depth security for AI coding assistants - protect credentials, code, and system from prompt injection attacks"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -10,7 +10,7 @@ Tweek provides:
10
10
  - Per-skill/per-tool security policies
11
11
  """
12
12
 
13
- __version__ = "0.4.0"
13
+ __version__ = "0.4.1"
14
14
  __author__ = "Tommy Mancino"
15
15
 
16
16
  # "TOO MUCH PRESSURE!" - Tweek Tweak
@@ -528,15 +528,17 @@ class GoogleReviewProvider(ReviewProvider):
528
528
  self._model = model
529
529
  self._api_key = api_key
530
530
  self._timeout = timeout
531
- genai.configure(api_key=api_key)
532
- self._genai_model = genai.GenerativeModel(
533
- model_name=model,
534
- system_instruction=None, # Set per-call
535
- )
531
+ self._configured = False
532
+
533
+ def _ensure_configured(self):
534
+ """Lazily configure the SDK on first use (avoids blocking API calls at init)."""
535
+ if not self._configured:
536
+ genai.configure(api_key=self._api_key)
537
+ self._configured = True
536
538
 
537
539
  def call(self, system_prompt: str, user_prompt: str, max_tokens: int = 256) -> str:
538
540
  try:
539
- # Create model with system instruction for this call
541
+ self._ensure_configured()
540
542
  model = genai.GenerativeModel(
541
543
  model_name=self._model,
542
544
  system_instruction=system_prompt,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tweek
3
- Version: 0.4.0
3
+ Version: 0.4.1
4
4
  Summary: Defense-in-depth security for AI coding assistants - protect credentials, code, and system from prompt injection attacks
5
5
  Author: Tommy Mancino
6
6
  License-Expression: Apache-2.0
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes