From 2860fb5d18edf48768ee8bbe4c219ca525c9cec9 Mon Sep 17 00:00:00 2001 From: wehub-resource-sync Date: Mon, 13 Jul 2026 12:05:33 +0800 Subject: [PATCH] chore: import upstream snapshot with attribution --- .agents/plugins/marketplace.json | 20 + .claude-plugin/marketplace.json | 24 + .claude-plugin/plugin.json | 30 + .clawhubignore | 71 + .codex-plugin/plugin.json | 50 + .gitattributes | 43 + .github/ISSUE_TEMPLATE/bug_report.yml | 53 + .github/ISSUE_TEMPLATE/feature_request.yml | 24 + .github/PULL_REQUEST_TEMPLATE.md | 19 + .github/copilot-instructions.md | 37 + .github/dependabot.yml | 22 + .github/workflows/osv-scanner.yml | 31 + .github/workflows/release.yml | 168 + .github/workflows/scorecard.yml | 69 + .github/workflows/security.yml | 89 + .github/workflows/validate.yml | 68 + .github/workflows/zizmor.yml | 23 + .gitignore | 51 + .grok-plugin/marketplace.json | 25 + .grok-plugin/plugin.json | 18 + .skillignore | 70 + AGENTS.md | 112 + CHANGELOG.md | 840 +++++ CLAUDE.md | 1 + CONCEPTS.md | 41 + CONFIGURATION.md | 565 +++ CONTRIBUTORS.md | 60 + HERMES_SETUP.md | 115 + LICENSE | 21 + README.md | 380 ++ README.wehub.md | 7 + docs/how-search-works.md | 196 ++ docs/pr-credits.md | 33 + docs/reference/eval.md | 87 + docs/reference/json-export.md | 132 + docs/reference/old-nux-wizard-v3.0.0.md | 205 ++ docs/releases/v3.0.9.md | 112 + docs/search-quality-eval.md | 48 + ...ality-eval-manual-by-default-2026-05-10.md | 82 + .../digg-cli-agent-path-setup-wizard.md | 80 + ...ty-grounding-full-phrase-false-demotion.md | 117 + ...ase-consistency-test-cascade-2026-05-16.md | 219 ++ docs/v2.1-launch-copy.md | 120 + docs/v2.5-launch-tweets.md | 360 ++ fixtures/eval_topics.json | 42 + fixtures/models_openai_sample.json | 41 + fixtures/models_xai_sample.json | 23 + fixtures/openai_sample.json | 22 + fixtures/reddit_listing_cards_sample.html | 8 + fixtures/reddit_search_rss_sample.xml | 7 + fixtures/reddit_shreddit_comments_sample.html | 29 + fixtures/reddit_thread_sample.json | 108 + fixtures/tiktok_search.json | 58 + fixtures/xai_sample.json | 22 + gemini-extension.json | 67 + greptile.json | 4 + hooks/hooks.json | 15 + hooks/scripts/check-config.sh | 273 ++ mcp/.gitignore | 12 + mcp/README.md | 36 + mcp/cmd/last30days-pp-mcp/main.go | 39 + mcp/go.mod | 14 + mcp/go.sum | 34 + mcp/internal/engine/embed.go | 26 + mcp/internal/engine/extract.go | 168 + mcp/internal/engine/extract_test.go | 167 + mcp/internal/engine/run.go | 163 + mcp/internal/engine/run_test.go | 281 ++ mcp/internal/engine/vendored/.gitkeep | 2 + mcp/internal/manifest/manifest_test.go | 189 + mcp/internal/tools/preflight.go | 85 + mcp/internal/tools/preflight_test.go | 60 + mcp/internal/tools/research.go | 158 + mcp/internal/tools/research_test.go | 175 + mcp/manifest.json | 151 + mcp/scripts/sync-engine.sh | 35 + media/pr-assets/gogcli-589-zoom-demo.gif | Bin 0 -> 2522563 bytes media/pr-assets/last30days-ad.gif | Bin 0 -> 9020739 bytes pyproject.toml | 42 + skills/last30days/.skillignore | 13 + skills/last30days/SKILL.md | 2144 ++++++++++++ skills/last30days/agents/openai.yaml | 8 + skills/last30days/assets/aging-portrait.jpeg | Bin 0 -> 2817207 bytes skills/last30days/assets/claude-code-rap.mp3 | Bin 0 -> 2354231 bytes skills/last30days/assets/dog-as-human.png | Bin 0 -> 2460679 bytes skills/last30days/assets/dog-original.jpeg | Bin 0 -> 4014063 bytes skills/last30days/assets/swimmom-mockup.jpeg | Bin 0 -> 2764821 bytes .../last30days/references/save-html-brief.md | 204 ++ skills/last30days/scripts/briefing.py | 272 ++ skills/last30days/scripts/build-skill.sh | 39 + skills/last30days/scripts/compare.sh | 61 + .../scripts/evaluate_search_quality.py | 588 ++++ skills/last30days/scripts/last30days.py | 2655 ++++++++++++++ skills/last30days/scripts/lib/__init__.py | 1 + skills/last30days/scripts/lib/arxiv.py | 290 ++ skills/last30days/scripts/lib/backends.py | 607 ++++ skills/last30days/scripts/lib/bird_x.py | 652 ++++ skills/last30days/scripts/lib/bluesky.py | 323 ++ skills/last30days/scripts/lib/categories.py | 289 ++ .../last30days/scripts/lib/chrome_cookies.py | 414 +++ skills/last30days/scripts/lib/cjk.py | 107 + skills/last30days/scripts/lib/cluster.py | 232 ++ skills/last30days/scripts/lib/competitors.py | 198 ++ .../last30days/scripts/lib/cookie_extract.py | 508 +++ skills/last30days/scripts/lib/corpus.py | 439 +++ skills/last30days/scripts/lib/dates.py | 169 + skills/last30days/scripts/lib/dedupe.py | 145 + skills/last30days/scripts/lib/digg.py | 440 +++ skills/last30days/scripts/lib/doctor.py | 848 +++++ skills/last30days/scripts/lib/dripstack.py | 203 ++ .../last30days/scripts/lib/entity_extract.py | 158 + skills/last30days/scripts/lib/env.py | 1254 +++++++ skills/last30days/scripts/lib/fanout.py | 84 + skills/last30days/scripts/lib/feed.py | 61 + skills/last30days/scripts/lib/freshness.py | 566 +++ skills/last30days/scripts/lib/fusion.py | 207 ++ skills/last30days/scripts/lib/github.py | 1069 ++++++ skills/last30days/scripts/lib/grounding.py | 363 ++ skills/last30days/scripts/lib/hackernews.py | 400 +++ skills/last30days/scripts/lib/health.py | 435 +++ .../last30days/scripts/lib/hiring_signals.py | 326 ++ skills/last30days/scripts/lib/hosted.py | 321 ++ skills/last30days/scripts/lib/html_publish.py | 107 + skills/last30days/scripts/lib/html_render.py | 904 +++++ skills/last30days/scripts/lib/http.py | 874 +++++ skills/last30days/scripts/lib/instagram.py | 632 ++++ skills/last30days/scripts/lib/jobs.py | 710 ++++ skills/last30days/scripts/lib/library.py | 269 ++ .../last30days/scripts/lib/library_index.py | 477 +++ skills/last30days/scripts/lib/linkedin.py | 363 ++ skills/last30days/scripts/lib/log.py | 35 + skills/last30days/scripts/lib/normalize.py | 825 +++++ .../scripts/lib/permission_preflight.py | 242 ++ skills/last30days/scripts/lib/perplexity.py | 745 ++++ skills/last30days/scripts/lib/pinterest.py | 154 + skills/last30days/scripts/lib/pipeline.py | 3118 +++++++++++++++++ skills/last30days/scripts/lib/planner.py | 938 +++++ skills/last30days/scripts/lib/polymarket.py | 937 +++++ skills/last30days/scripts/lib/preflight.py | 119 + .../last30days/scripts/lib/prescriptions.py | 295 ++ skills/last30days/scripts/lib/providers.py | 380 ++ .../last30days/scripts/lib/quality_nudge.py | 398 +++ skills/last30days/scripts/lib/query.py | 202 ++ skills/last30days/scripts/lib/reddit.py | 749 ++++ .../last30days/scripts/lib/reddit_arctic.py | 92 + .../last30days/scripts/lib/reddit_enrich.py | 322 ++ .../last30days/scripts/lib/reddit_keyless.py | 330 ++ .../last30days/scripts/lib/reddit_listing.py | 246 ++ .../last30days/scripts/lib/reddit_public.py | 275 ++ skills/last30days/scripts/lib/reddit_rss.py | 224 ++ .../last30days/scripts/lib/reddit_shreddit.py | 184 + skills/last30days/scripts/lib/registers.py | 133 + skills/last30days/scripts/lib/relevance.py | 200 ++ skills/last30days/scripts/lib/render.py | 2707 ++++++++++++++ skills/last30days/scripts/lib/rerank.py | 767 ++++ skills/last30days/scripts/lib/resolve.py | 394 +++ .../last30days/scripts/lib/safari_cookies.py | 193 + skills/last30days/scripts/lib/schema.py | 848 +++++ skills/last30days/scripts/lib/setup_wizard.py | 1089 ++++++ skills/last30days/scripts/lib/signals.py | 350 ++ skills/last30days/scripts/lib/skill_meta.py | 33 + skills/last30days/scripts/lib/snippet.py | 51 + skills/last30days/scripts/lib/stocktwits.py | 374 ++ skills/last30days/scripts/lib/subproc.py | 116 + skills/last30days/scripts/lib/techmeme.py | 264 ++ skills/last30days/scripts/lib/threads.py | 207 ++ skills/last30days/scripts/lib/tiktok.py | 596 ++++ skills/last30days/scripts/lib/transcribe.py | 235 ++ skills/last30days/scripts/lib/trustpilot.py | 528 +++ skills/last30days/scripts/lib/truthsocial.py | 162 + skills/last30days/scripts/lib/ui.py | 626 ++++ .../scripts/lib/vendor/bird-search/LICENSE | 21 + .../lib/vendor/bird-search/bird-search.mjs | 147 + .../lib/vendor/bird-search/lib/cookies.js | 220 ++ .../lib/vendor/bird-search/lib/features.json | 17 + .../vendor/bird-search/lib/paginate-cursor.js | 37 + .../lib/vendor/bird-search/lib/query-ids.json | 20 + .../bird-search/lib/runtime-features.js | 151 + .../bird-search/lib/runtime-query-ids.js | 264 ++ .../bird-search/lib/twitter-client-base.js | 129 + .../lib/twitter-client-constants.js | 50 + .../lib/twitter-client-features.js | 347 ++ .../bird-search/lib/twitter-client-search.js | 157 + .../bird-search/lib/twitter-client-types.js | 2 + .../bird-search/lib/twitter-client-utils.js | 511 +++ .../lib/vendor/bird-search/package.json | 13 + .../scripts/lib/web_fetch_keyless.py | 105 + .../scripts/lib/web_search_keyless.py | 158 + skills/last30days/scripts/lib/xai_x.py | 236 ++ .../last30days/scripts/lib/xiaohongshu_api.py | 162 + skills/last30days/scripts/lib/xquik.py | 406 +++ skills/last30days/scripts/lib/xurl_x.py | 264 ++ skills/last30days/scripts/lib/youtube_yt.py | 1380 ++++++++ skills/last30days/scripts/setup-keychain.sh | 123 + skills/last30days/scripts/setup-pass.sh | 132 + skills/last30days/scripts/store.py | 1061 ++++++ skills/last30days/scripts/test-v1-vs-v2.sh | 220 ++ skills/last30days/scripts/test_device_auth.py | 128 + skills/last30days/scripts/verify_v3.py | 195 ++ skills/last30days/scripts/watchlist.py | 319 ++ tests/__init__.py | 1 + tests/conftest.py | 30 + tests/e2e_comparison.py | 202 ++ tests/eval/__init__.py | 1 + tests/eval/baseline.json | 17 + tests/eval/fixtures/breaking-event/http.json | 83 + .../fixtures/breaking-event/manifest.json | 42 + tests/eval/fixtures/comparison/http.json | 83 + tests/eval/fixtures/comparison/manifest.json | 42 + tests/eval/fixtures/emerging-event/http.json | 83 + .../fixtures/emerging-event/manifest.json | 42 + tests/eval/fixtures/niche/http.json | 83 + tests/eval/fixtures/niche/manifest.json | 42 + tests/eval/fixtures/non-english-cjk/http.json | 83 + .../fixtures/non-english-cjk/manifest.json | 42 + tests/eval/fixtures/person/http.json | 83 + tests/eval/fixtures/person/manifest.json | 42 + tests/eval/fixtures/tech-product/http.json | 83 + .../eval/fixtures/tech-product/manifest.json | 42 + tests/eval/harness.py | 274 ++ tests/eval/test_eval_harness.py | 200 ++ tests/fixtures/agent_export_v1.json | 88 + .../prompting-gpt-image-2-resolved-block.md | 60 + tests/hermes/baseline_findings.md | 26 + .../hermes/test_no_critical_scan_findings.py | 73 + tests/test_adversarial_v3.py | 193 + tests/test_agent_export.py | 283 ++ tests/test_arxiv_source.py | 167 + tests/test_as_of_date.py | 114 + tests/test_backend_descriptors.py | 614 ++++ tests/test_bird_x.py | 536 +++ tests/test_bluesky.py | 358 ++ tests/test_briefing_v3.py | 111 + tests/test_categories.py | 149 + tests/test_category_integration.py | 139 + tests/test_check_config_memory_dir.py | 101 + tests/test_check_config_ytdlp_detection.py | 255 ++ tests/test_chrome_cookies.py | 383 ++ tests/test_chromium_browsers.py | 316 ++ tests/test_cjk.py | 95 + tests/test_cli_competitors.py | 130 + tests/test_cli_hiring_signals.py | 26 + tests/test_cli_v3.py | 622 ++++ tests/test_cluster_v3.py | 196 ++ tests/test_codex_host_contract.py | 126 + tests/test_competitor_fanout.py | 153 + tests/test_competitor_subrun_isolation.py | 189 + tests/test_competitors.py | 144 + tests/test_competitors_plan_threading.py | 211 ++ tests/test_competitors_resolve_integration.py | 325 ++ tests/test_cookie_extract.py | 445 +++ tests/test_corpus_source.py | 868 +++++ tests/test_dates.py | 110 + tests/test_dates_v3.py | 58 + tests/test_dedupe_v3.py | 212 ++ tests/test_diagnose_browser_pending.py | 136 + tests/test_diagnose_compat.py | 284 ++ tests/test_digg.py | 488 +++ tests/test_discover_mode.py | 662 ++++ tests/test_doc_flag_contract.py | 114 + tests/test_doc_security_contract.py | 70 + tests/test_doctor.py | 518 +++ tests/test_doctor_cache.py | 669 ++++ tests/test_drill_mode.py | 552 +++ tests/test_dripstack.py | 131 + tests/test_entity_extract.py | 163 + tests/test_entity_extract_v3.py | 53 + tests/test_env_cookies.py | 151 + tests/test_env_default_search.py | 34 + tests/test_env_doc_contract.py | 82 + tests/test_env_encoding.py | 31 + tests/test_env_file_utf8.py | 17 + tests/test_env_include_sources_default.py | 14 + tests/test_env_keychain.py | 291 ++ tests/test_env_pass.py | 244 ++ tests/test_env_v3.py | 169 + tests/test_evaluator_v3.py | 277 ++ tests/test_footer_nudge_suppression.py | 92 + tests/test_freshness.py | 1130 ++++++ tests/test_fun_vote_weighting.py | 271 ++ tests/test_fusion_v3.py | 437 +++ tests/test_github.py | 293 ++ tests/test_github_device_auth.py | 207 ++ tests/test_github_unauth.py | 31 + tests/test_grounding_v3.py | 354 ++ tests/test_hackernews.py | 488 +++ tests/test_health.py | 75 + tests/test_health_probe_taxonomy.py | 326 ++ tests/test_hermes_skillignore.py | 49 + tests/test_hiring_signals.py | 104 + tests/test_hiring_signals_normalize.py | 35 + tests/test_hosted.py | 583 +++ tests/test_html_publish.py | 287 ++ tests/test_html_render.py | 394 +++ tests/test_html_save_contract.py | 75 + tests/test_http_fixtures.py | 239 ++ tests/test_http_v3.py | 216 ++ tests/test_instagram.py | 121 + tests/test_instagram_sc.py | 254 ++ tests/test_internals_v3.py | 553 +++ tests/test_jobs_source.py | 216 ++ tests/test_last_run_state.py | 533 +++ tests/test_library_feed.py | 579 +++ tests/test_library_search.py | 712 ++++ tests/test_linkedin.py | 425 +++ tests/test_new_sources_eval.py | 134 + tests/test_no_bare_open_read.py | 37 + tests/test_normalize_v3.py | 252 ++ tests/test_onboarding_contract.py | 306 ++ tests/test_permission_preflight.py | 269 ++ tests/test_perplexity.py | 534 +++ tests/test_pinterest.py | 72 + tests/test_pipeline_v3.py | 1494 ++++++++ tests/test_planner_quiet_mode.py | 48 + tests/test_planner_v3.py | 500 +++ tests/test_plugin_contract.py | 129 + tests/test_polymarket.py | 623 ++++ tests/test_polymarket_disambiguation.py | 67 + tests/test_preflight.py | 123 + tests/test_prescriptions.py | 347 ++ tests/test_project_config_trust.py | 195 ++ tests/test_providers_v3.py | 139 + tests/test_quality_nudge.py | 711 ++++ tests/test_query.py | 251 ++ tests/test_query_v3.py | 39 + tests/test_reddit.py | 264 ++ tests/test_reddit_arctic.py | 87 + tests/test_reddit_dedicated.py | 99 + tests/test_reddit_dispatch.py | 152 + tests/test_reddit_enrich.py | 126 + tests/test_reddit_keyless.py | 255 ++ tests/test_reddit_keyless_backoff.py | 55 + tests/test_reddit_listing.py | 85 + tests/test_reddit_public.py | 347 ++ tests/test_reddit_relevance_ranking.py | 106 + tests/test_reddit_rss.py | 96 + tests/test_reddit_sc.py | 177 + tests/test_reddit_shreddit.py | 103 + tests/test_registers.py | 367 ++ tests/test_regression.py | 115 + tests/test_relevance.py | 126 + tests/test_relevance_core_v3.py | 47 + tests/test_render_comparison_multi.py | 304 ++ tests/test_render_hiring_signals.py | 156 + tests/test_render_v3.py | 1172 +++++++ tests/test_rerank_fun.py | 123 + tests/test_rerank_v3.py | 740 ++++ tests/test_resolve.py | 408 +++ tests/test_runtime_preflight_contract.py | 36 + tests/test_safari_cookies.py | 290 ++ tests/test_save_dir_env_fallback.py | 215 ++ tests/test_save_raw_per_entity.py | 92 + tests/test_schema_v3.py | 84 + tests/test_scorecard_workflow.py | 53 + tests/test_secret_hygiene.py | 52 + tests/test_security_boundaries.py | 192 + tests/test_security_workflow.py | 65 + tests/test_setup_openclaw.py | 556 +++ tests/test_setup_wizard.py | 752 ++++ tests/test_setup_wizard_pp_sources.py | 93 + tests/test_signals_v3.py | 817 +++++ tests/test_skill_meta.py | 58 + tests/test_skill_version.py | 133 + tests/test_snippet_v3.py | 58 + tests/test_source_log_visibility.py | 130 + tests/test_source_outcomes.py | 393 +++ tests/test_stocktwits.py | 149 + tests/test_store.py | 895 +++++ tests/test_subproc.py | 199 ++ tests/test_techmeme_source.py | 407 +++ tests/test_threads.py | 25 + tests/test_tiktok.py | 234 ++ tests/test_transcribe.py | 93 + tests/test_trustpilot_source.py | 476 +++ tests/test_truthsocial.py | 229 ++ tests/test_ui_v3.py | 94 + tests/test_verify_v3.py | 41 + tests/test_version_consistency.py | 83 + tests/test_vs_mode_fanout.py | 56 + tests/test_watchlist_commands.py | 624 ++++ tests/test_watchlist_delivery.py | 287 ++ tests/test_web_fetch_keyless.py | 55 + tests/test_web_search_keyless.py | 67 + tests/test_welcome.py | 52 + tests/test_xai_x.py | 63 + tests/test_xiaohongshu_api.py | 200 ++ tests/test_xquik.py | 487 +++ tests/test_xurl_x.py | 363 ++ tests/test_youtube_backfill.py | 157 + tests/test_youtube_relevance.py | 106 + tests/test_youtube_yt.py | 1073 ++++++ uv.lock | 181 + 392 files changed, 102831 insertions(+) create mode 100644 .agents/plugins/marketplace.json create mode 100644 .claude-plugin/marketplace.json create mode 100644 .claude-plugin/plugin.json create mode 100644 .clawhubignore create mode 100644 .codex-plugin/plugin.json create mode 100644 .gitattributes create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/copilot-instructions.md create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/osv-scanner.yml create mode 100644 .github/workflows/release.yml create mode 100644 .github/workflows/scorecard.yml create mode 100644 .github/workflows/security.yml create mode 100644 .github/workflows/validate.yml create mode 100644 .github/workflows/zizmor.yml create mode 100644 .gitignore create mode 100644 .grok-plugin/marketplace.json create mode 100644 .grok-plugin/plugin.json create mode 100644 .skillignore create mode 100644 AGENTS.md create mode 100644 CHANGELOG.md create mode 100644 CLAUDE.md create mode 100644 CONCEPTS.md create mode 100644 CONFIGURATION.md create mode 100644 CONTRIBUTORS.md create mode 100644 HERMES_SETUP.md create mode 100644 LICENSE create mode 100644 README.md create mode 100644 README.wehub.md create mode 100644 docs/how-search-works.md create mode 100644 docs/pr-credits.md create mode 100644 docs/reference/eval.md create mode 100644 docs/reference/json-export.md create mode 100644 docs/reference/old-nux-wizard-v3.0.0.md create mode 100644 docs/releases/v3.0.9.md create mode 100644 docs/search-quality-eval.md create mode 100644 docs/solutions/architecture/search-quality-eval-manual-by-default-2026-05-10.md create mode 100644 docs/solutions/integration-issues/digg-cli-agent-path-setup-wizard.md create mode 100644 docs/solutions/logic-errors/entity-grounding-full-phrase-false-demotion.md create mode 100644 docs/solutions/workflow-issues/release-consistency-test-cascade-2026-05-16.md create mode 100644 docs/v2.1-launch-copy.md create mode 100644 docs/v2.5-launch-tweets.md create mode 100644 fixtures/eval_topics.json create mode 100644 fixtures/models_openai_sample.json create mode 100644 fixtures/models_xai_sample.json create mode 100644 fixtures/openai_sample.json create mode 100644 fixtures/reddit_listing_cards_sample.html create mode 100644 fixtures/reddit_search_rss_sample.xml create mode 100644 fixtures/reddit_shreddit_comments_sample.html create mode 100644 fixtures/reddit_thread_sample.json create mode 100644 fixtures/tiktok_search.json create mode 100644 fixtures/xai_sample.json create mode 100644 gemini-extension.json create mode 100644 greptile.json create mode 100644 hooks/hooks.json create mode 100755 hooks/scripts/check-config.sh create mode 100644 mcp/.gitignore create mode 100644 mcp/README.md create mode 100644 mcp/cmd/last30days-pp-mcp/main.go create mode 100644 mcp/go.mod create mode 100644 mcp/go.sum create mode 100644 mcp/internal/engine/embed.go create mode 100644 mcp/internal/engine/extract.go create mode 100644 mcp/internal/engine/extract_test.go create mode 100644 mcp/internal/engine/run.go create mode 100644 mcp/internal/engine/run_test.go create mode 100644 mcp/internal/engine/vendored/.gitkeep create mode 100644 mcp/internal/manifest/manifest_test.go create mode 100644 mcp/internal/tools/preflight.go create mode 100644 mcp/internal/tools/preflight_test.go create mode 100644 mcp/internal/tools/research.go create mode 100644 mcp/internal/tools/research_test.go create mode 100644 mcp/manifest.json create mode 100755 mcp/scripts/sync-engine.sh create mode 100644 media/pr-assets/gogcli-589-zoom-demo.gif create mode 100644 media/pr-assets/last30days-ad.gif create mode 100644 pyproject.toml create mode 100644 skills/last30days/.skillignore create mode 100644 skills/last30days/SKILL.md create mode 100644 skills/last30days/agents/openai.yaml create mode 100644 skills/last30days/assets/aging-portrait.jpeg create mode 100644 skills/last30days/assets/claude-code-rap.mp3 create mode 100644 skills/last30days/assets/dog-as-human.png create mode 100644 skills/last30days/assets/dog-original.jpeg create mode 100644 skills/last30days/assets/swimmom-mockup.jpeg create mode 100644 skills/last30days/references/save-html-brief.md create mode 100644 skills/last30days/scripts/briefing.py create mode 100755 skills/last30days/scripts/build-skill.sh create mode 100755 skills/last30days/scripts/compare.sh create mode 100644 skills/last30days/scripts/evaluate_search_quality.py create mode 100644 skills/last30days/scripts/last30days.py create mode 100644 skills/last30days/scripts/lib/__init__.py create mode 100644 skills/last30days/scripts/lib/arxiv.py create mode 100644 skills/last30days/scripts/lib/backends.py create mode 100644 skills/last30days/scripts/lib/bird_x.py create mode 100644 skills/last30days/scripts/lib/bluesky.py create mode 100644 skills/last30days/scripts/lib/categories.py create mode 100644 skills/last30days/scripts/lib/chrome_cookies.py create mode 100644 skills/last30days/scripts/lib/cjk.py create mode 100644 skills/last30days/scripts/lib/cluster.py create mode 100644 skills/last30days/scripts/lib/competitors.py create mode 100644 skills/last30days/scripts/lib/cookie_extract.py create mode 100644 skills/last30days/scripts/lib/corpus.py create mode 100644 skills/last30days/scripts/lib/dates.py create mode 100644 skills/last30days/scripts/lib/dedupe.py create mode 100644 skills/last30days/scripts/lib/digg.py create mode 100644 skills/last30days/scripts/lib/doctor.py create mode 100644 skills/last30days/scripts/lib/dripstack.py create mode 100644 skills/last30days/scripts/lib/entity_extract.py create mode 100644 skills/last30days/scripts/lib/env.py create mode 100644 skills/last30days/scripts/lib/fanout.py create mode 100644 skills/last30days/scripts/lib/feed.py create mode 100644 skills/last30days/scripts/lib/freshness.py create mode 100644 skills/last30days/scripts/lib/fusion.py create mode 100644 skills/last30days/scripts/lib/github.py create mode 100644 skills/last30days/scripts/lib/grounding.py create mode 100644 skills/last30days/scripts/lib/hackernews.py create mode 100644 skills/last30days/scripts/lib/health.py create mode 100644 skills/last30days/scripts/lib/hiring_signals.py create mode 100644 skills/last30days/scripts/lib/hosted.py create mode 100644 skills/last30days/scripts/lib/html_publish.py create mode 100644 skills/last30days/scripts/lib/html_render.py create mode 100644 skills/last30days/scripts/lib/http.py create mode 100644 skills/last30days/scripts/lib/instagram.py create mode 100644 skills/last30days/scripts/lib/jobs.py create mode 100644 skills/last30days/scripts/lib/library.py create mode 100644 skills/last30days/scripts/lib/library_index.py create mode 100644 skills/last30days/scripts/lib/linkedin.py create mode 100644 skills/last30days/scripts/lib/log.py create mode 100644 skills/last30days/scripts/lib/normalize.py create mode 100644 skills/last30days/scripts/lib/permission_preflight.py create mode 100644 skills/last30days/scripts/lib/perplexity.py create mode 100644 skills/last30days/scripts/lib/pinterest.py create mode 100644 skills/last30days/scripts/lib/pipeline.py create mode 100644 skills/last30days/scripts/lib/planner.py create mode 100644 skills/last30days/scripts/lib/polymarket.py create mode 100644 skills/last30days/scripts/lib/preflight.py create mode 100644 skills/last30days/scripts/lib/prescriptions.py create mode 100644 skills/last30days/scripts/lib/providers.py create mode 100644 skills/last30days/scripts/lib/quality_nudge.py create mode 100644 skills/last30days/scripts/lib/query.py create mode 100644 skills/last30days/scripts/lib/reddit.py create mode 100644 skills/last30days/scripts/lib/reddit_arctic.py create mode 100644 skills/last30days/scripts/lib/reddit_enrich.py create mode 100644 skills/last30days/scripts/lib/reddit_keyless.py create mode 100644 skills/last30days/scripts/lib/reddit_listing.py create mode 100644 skills/last30days/scripts/lib/reddit_public.py create mode 100644 skills/last30days/scripts/lib/reddit_rss.py create mode 100644 skills/last30days/scripts/lib/reddit_shreddit.py create mode 100644 skills/last30days/scripts/lib/registers.py create mode 100644 skills/last30days/scripts/lib/relevance.py create mode 100644 skills/last30days/scripts/lib/render.py create mode 100644 skills/last30days/scripts/lib/rerank.py create mode 100644 skills/last30days/scripts/lib/resolve.py create mode 100644 skills/last30days/scripts/lib/safari_cookies.py create mode 100644 skills/last30days/scripts/lib/schema.py create mode 100644 skills/last30days/scripts/lib/setup_wizard.py create mode 100644 skills/last30days/scripts/lib/signals.py create mode 100644 skills/last30days/scripts/lib/skill_meta.py create mode 100644 skills/last30days/scripts/lib/snippet.py create mode 100644 skills/last30days/scripts/lib/stocktwits.py create mode 100644 skills/last30days/scripts/lib/subproc.py create mode 100644 skills/last30days/scripts/lib/techmeme.py create mode 100644 skills/last30days/scripts/lib/threads.py create mode 100644 skills/last30days/scripts/lib/tiktok.py create mode 100644 skills/last30days/scripts/lib/transcribe.py create mode 100644 skills/last30days/scripts/lib/trustpilot.py create mode 100644 skills/last30days/scripts/lib/truthsocial.py create mode 100644 skills/last30days/scripts/lib/ui.py create mode 100644 skills/last30days/scripts/lib/vendor/bird-search/LICENSE create mode 100644 skills/last30days/scripts/lib/vendor/bird-search/bird-search.mjs create mode 100644 skills/last30days/scripts/lib/vendor/bird-search/lib/cookies.js create mode 100644 skills/last30days/scripts/lib/vendor/bird-search/lib/features.json create mode 100644 skills/last30days/scripts/lib/vendor/bird-search/lib/paginate-cursor.js create mode 100644 skills/last30days/scripts/lib/vendor/bird-search/lib/query-ids.json create mode 100644 skills/last30days/scripts/lib/vendor/bird-search/lib/runtime-features.js create mode 100644 skills/last30days/scripts/lib/vendor/bird-search/lib/runtime-query-ids.js create mode 100644 skills/last30days/scripts/lib/vendor/bird-search/lib/twitter-client-base.js create mode 100644 skills/last30days/scripts/lib/vendor/bird-search/lib/twitter-client-constants.js create mode 100644 skills/last30days/scripts/lib/vendor/bird-search/lib/twitter-client-features.js create mode 100644 skills/last30days/scripts/lib/vendor/bird-search/lib/twitter-client-search.js create mode 100644 skills/last30days/scripts/lib/vendor/bird-search/lib/twitter-client-types.js create mode 100644 skills/last30days/scripts/lib/vendor/bird-search/lib/twitter-client-utils.js create mode 100644 skills/last30days/scripts/lib/vendor/bird-search/package.json create mode 100644 skills/last30days/scripts/lib/web_fetch_keyless.py create mode 100644 skills/last30days/scripts/lib/web_search_keyless.py create mode 100644 skills/last30days/scripts/lib/xai_x.py create mode 100644 skills/last30days/scripts/lib/xiaohongshu_api.py create mode 100644 skills/last30days/scripts/lib/xquik.py create mode 100644 skills/last30days/scripts/lib/xurl_x.py create mode 100644 skills/last30days/scripts/lib/youtube_yt.py create mode 100755 skills/last30days/scripts/setup-keychain.sh create mode 100755 skills/last30days/scripts/setup-pass.sh create mode 100644 skills/last30days/scripts/store.py create mode 100755 skills/last30days/scripts/test-v1-vs-v2.sh create mode 100644 skills/last30days/scripts/test_device_auth.py create mode 100644 skills/last30days/scripts/verify_v3.py create mode 100644 skills/last30days/scripts/watchlist.py create mode 100644 tests/__init__.py create mode 100644 tests/conftest.py create mode 100644 tests/e2e_comparison.py create mode 100644 tests/eval/__init__.py create mode 100644 tests/eval/baseline.json create mode 100644 tests/eval/fixtures/breaking-event/http.json create mode 100644 tests/eval/fixtures/breaking-event/manifest.json create mode 100644 tests/eval/fixtures/comparison/http.json create mode 100644 tests/eval/fixtures/comparison/manifest.json create mode 100644 tests/eval/fixtures/emerging-event/http.json create mode 100644 tests/eval/fixtures/emerging-event/manifest.json create mode 100644 tests/eval/fixtures/niche/http.json create mode 100644 tests/eval/fixtures/niche/manifest.json create mode 100644 tests/eval/fixtures/non-english-cjk/http.json create mode 100644 tests/eval/fixtures/non-english-cjk/manifest.json create mode 100644 tests/eval/fixtures/person/http.json create mode 100644 tests/eval/fixtures/person/manifest.json create mode 100644 tests/eval/fixtures/tech-product/http.json create mode 100644 tests/eval/fixtures/tech-product/manifest.json create mode 100644 tests/eval/harness.py create mode 100644 tests/eval/test_eval_harness.py create mode 100644 tests/fixtures/agent_export_v1.json create mode 100644 tests/fixtures/prompting-gpt-image-2-resolved-block.md create mode 100644 tests/hermes/baseline_findings.md create mode 100644 tests/hermes/test_no_critical_scan_findings.py create mode 100644 tests/test_adversarial_v3.py create mode 100644 tests/test_agent_export.py create mode 100644 tests/test_arxiv_source.py create mode 100644 tests/test_as_of_date.py create mode 100644 tests/test_backend_descriptors.py create mode 100644 tests/test_bird_x.py create mode 100644 tests/test_bluesky.py create mode 100644 tests/test_briefing_v3.py create mode 100644 tests/test_categories.py create mode 100644 tests/test_category_integration.py create mode 100644 tests/test_check_config_memory_dir.py create mode 100644 tests/test_check_config_ytdlp_detection.py create mode 100644 tests/test_chrome_cookies.py create mode 100644 tests/test_chromium_browsers.py create mode 100644 tests/test_cjk.py create mode 100644 tests/test_cli_competitors.py create mode 100644 tests/test_cli_hiring_signals.py create mode 100644 tests/test_cli_v3.py create mode 100644 tests/test_cluster_v3.py create mode 100644 tests/test_codex_host_contract.py create mode 100644 tests/test_competitor_fanout.py create mode 100644 tests/test_competitor_subrun_isolation.py create mode 100644 tests/test_competitors.py create mode 100644 tests/test_competitors_plan_threading.py create mode 100644 tests/test_competitors_resolve_integration.py create mode 100644 tests/test_cookie_extract.py create mode 100644 tests/test_corpus_source.py create mode 100644 tests/test_dates.py create mode 100644 tests/test_dates_v3.py create mode 100644 tests/test_dedupe_v3.py create mode 100644 tests/test_diagnose_browser_pending.py create mode 100644 tests/test_diagnose_compat.py create mode 100644 tests/test_digg.py create mode 100644 tests/test_discover_mode.py create mode 100644 tests/test_doc_flag_contract.py create mode 100644 tests/test_doc_security_contract.py create mode 100644 tests/test_doctor.py create mode 100644 tests/test_doctor_cache.py create mode 100644 tests/test_drill_mode.py create mode 100644 tests/test_dripstack.py create mode 100644 tests/test_entity_extract.py create mode 100644 tests/test_entity_extract_v3.py create mode 100644 tests/test_env_cookies.py create mode 100644 tests/test_env_default_search.py create mode 100644 tests/test_env_doc_contract.py create mode 100644 tests/test_env_encoding.py create mode 100644 tests/test_env_file_utf8.py create mode 100644 tests/test_env_include_sources_default.py create mode 100644 tests/test_env_keychain.py create mode 100644 tests/test_env_pass.py create mode 100644 tests/test_env_v3.py create mode 100644 tests/test_evaluator_v3.py create mode 100644 tests/test_footer_nudge_suppression.py create mode 100644 tests/test_freshness.py create mode 100644 tests/test_fun_vote_weighting.py create mode 100644 tests/test_fusion_v3.py create mode 100644 tests/test_github.py create mode 100644 tests/test_github_device_auth.py create mode 100644 tests/test_github_unauth.py create mode 100644 tests/test_grounding_v3.py create mode 100644 tests/test_hackernews.py create mode 100644 tests/test_health.py create mode 100644 tests/test_health_probe_taxonomy.py create mode 100644 tests/test_hermes_skillignore.py create mode 100644 tests/test_hiring_signals.py create mode 100644 tests/test_hiring_signals_normalize.py create mode 100644 tests/test_hosted.py create mode 100644 tests/test_html_publish.py create mode 100644 tests/test_html_render.py create mode 100644 tests/test_html_save_contract.py create mode 100644 tests/test_http_fixtures.py create mode 100644 tests/test_http_v3.py create mode 100644 tests/test_instagram.py create mode 100644 tests/test_instagram_sc.py create mode 100644 tests/test_internals_v3.py create mode 100644 tests/test_jobs_source.py create mode 100644 tests/test_last_run_state.py create mode 100644 tests/test_library_feed.py create mode 100644 tests/test_library_search.py create mode 100644 tests/test_linkedin.py create mode 100644 tests/test_new_sources_eval.py create mode 100644 tests/test_no_bare_open_read.py create mode 100644 tests/test_normalize_v3.py create mode 100644 tests/test_onboarding_contract.py create mode 100644 tests/test_permission_preflight.py create mode 100644 tests/test_perplexity.py create mode 100644 tests/test_pinterest.py create mode 100644 tests/test_pipeline_v3.py create mode 100644 tests/test_planner_quiet_mode.py create mode 100644 tests/test_planner_v3.py create mode 100644 tests/test_plugin_contract.py create mode 100644 tests/test_polymarket.py create mode 100644 tests/test_polymarket_disambiguation.py create mode 100644 tests/test_preflight.py create mode 100644 tests/test_prescriptions.py create mode 100644 tests/test_project_config_trust.py create mode 100644 tests/test_providers_v3.py create mode 100644 tests/test_quality_nudge.py create mode 100644 tests/test_query.py create mode 100644 tests/test_query_v3.py create mode 100644 tests/test_reddit.py create mode 100644 tests/test_reddit_arctic.py create mode 100644 tests/test_reddit_dedicated.py create mode 100644 tests/test_reddit_dispatch.py create mode 100644 tests/test_reddit_enrich.py create mode 100644 tests/test_reddit_keyless.py create mode 100644 tests/test_reddit_keyless_backoff.py create mode 100644 tests/test_reddit_listing.py create mode 100644 tests/test_reddit_public.py create mode 100644 tests/test_reddit_relevance_ranking.py create mode 100644 tests/test_reddit_rss.py create mode 100644 tests/test_reddit_sc.py create mode 100644 tests/test_reddit_shreddit.py create mode 100644 tests/test_registers.py create mode 100644 tests/test_regression.py create mode 100644 tests/test_relevance.py create mode 100644 tests/test_relevance_core_v3.py create mode 100644 tests/test_render_comparison_multi.py create mode 100644 tests/test_render_hiring_signals.py create mode 100644 tests/test_render_v3.py create mode 100644 tests/test_rerank_fun.py create mode 100644 tests/test_rerank_v3.py create mode 100644 tests/test_resolve.py create mode 100644 tests/test_runtime_preflight_contract.py create mode 100644 tests/test_safari_cookies.py create mode 100644 tests/test_save_dir_env_fallback.py create mode 100644 tests/test_save_raw_per_entity.py create mode 100644 tests/test_schema_v3.py create mode 100644 tests/test_scorecard_workflow.py create mode 100644 tests/test_secret_hygiene.py create mode 100644 tests/test_security_boundaries.py create mode 100644 tests/test_security_workflow.py create mode 100644 tests/test_setup_openclaw.py create mode 100644 tests/test_setup_wizard.py create mode 100644 tests/test_setup_wizard_pp_sources.py create mode 100644 tests/test_signals_v3.py create mode 100644 tests/test_skill_meta.py create mode 100644 tests/test_skill_version.py create mode 100644 tests/test_snippet_v3.py create mode 100644 tests/test_source_log_visibility.py create mode 100644 tests/test_source_outcomes.py create mode 100644 tests/test_stocktwits.py create mode 100644 tests/test_store.py create mode 100644 tests/test_subproc.py create mode 100644 tests/test_techmeme_source.py create mode 100644 tests/test_threads.py create mode 100644 tests/test_tiktok.py create mode 100644 tests/test_transcribe.py create mode 100644 tests/test_trustpilot_source.py create mode 100644 tests/test_truthsocial.py create mode 100644 tests/test_ui_v3.py create mode 100644 tests/test_verify_v3.py create mode 100644 tests/test_version_consistency.py create mode 100644 tests/test_vs_mode_fanout.py create mode 100644 tests/test_watchlist_commands.py create mode 100644 tests/test_watchlist_delivery.py create mode 100644 tests/test_web_fetch_keyless.py create mode 100644 tests/test_web_search_keyless.py create mode 100644 tests/test_welcome.py create mode 100644 tests/test_xai_x.py create mode 100644 tests/test_xiaohongshu_api.py create mode 100644 tests/test_xquik.py create mode 100644 tests/test_xurl_x.py create mode 100644 tests/test_youtube_backfill.py create mode 100644 tests/test_youtube_relevance.py create mode 100644 tests/test_youtube_yt.py create mode 100644 uv.lock diff --git a/.agents/plugins/marketplace.json b/.agents/plugins/marketplace.json new file mode 100644 index 0000000..ad6a805 --- /dev/null +++ b/.agents/plugins/marketplace.json @@ -0,0 +1,20 @@ +{ + "name": "last30days-skill", + "interface": { + "displayName": "last30days" + }, + "plugins": [ + { + "name": "last30days", + "source": { + "source": "url", + "url": "https://github.com/mvanhorn/last30days-skill.git" + }, + "policy": { + "installation": "AVAILABLE", + "authentication": "ON_INSTALL" + }, + "category": "Research" + } + ] +} diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json new file mode 100644 index 0000000..7576676 --- /dev/null +++ b/.claude-plugin/marketplace.json @@ -0,0 +1,24 @@ +{ + "name": "last30days-skill", + "owner": { + "name": "Matt Van Horn", + "url": "https://github.com/mvanhorn" + }, + "metadata": { + "description": "Marketplace hosting the last30days research plugin." + }, + "plugins": [ + { + "name": "last30days", + "description": "Research any topic across Reddit, X, YouTube, TikTok, Instagram, Hacker News, Polymarket, GitHub, and 5+ more sources. AI agent scores by upvotes, likes, and real money - not editors.", + "version": "3.13.0", + "author": { + "name": "Matt Van Horn", + "url": "https://github.com/mvanhorn" + }, + "source": "./", + "category": "productivity", + "homepage": "https://github.com/mvanhorn/last30days-skill" + } + ] +} diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json new file mode 100644 index 0000000..665ba2b --- /dev/null +++ b/.claude-plugin/plugin.json @@ -0,0 +1,30 @@ +{ + "name": "last30days", + "version": "3.13.0", + "description": "Research any topic across Reddit, X, YouTube, TikTok, Instagram, Hacker News, Polymarket, GitHub, and 5+ more sources. AI agent scores by upvotes, likes, and real money - not editors.", + "author": { + "name": "Matt Van Horn", + "email": "mvanhorn@gmail.com", + "url": "https://github.com/mvanhorn" + }, + "homepage": "https://github.com/mvanhorn/last30days-skill", + "repository": "https://github.com/mvanhorn/last30days-skill", + "license": "MIT", + "keywords": [ + "competitor research", + "research", + "reddit", + "twitter", + "youtube", + "tiktok", + "instagram", + "trends", + "prompts", + "polymarket", + "github", + "perplexity", + "threads", + "pinterest", + "hacker-news" + ] +} diff --git a/.clawhubignore b/.clawhubignore new file mode 100644 index 0000000..5c8d445 --- /dev/null +++ b/.clawhubignore @@ -0,0 +1,71 @@ +# ClawHub/Hermes packaging exclusions for repository-root scans. +# Mirrors .skillignore so non-runtime docs/dev artifacts stay out of the +# public bundle and install-time skill security scan. + +# VCS, local envs, caches, and generated outputs +.git/ +.venv/ +__pycache__/ +*.pyc +*.log +*.jsonl +*.mp3 +*.jpeg +*.jpg +*.png +*.gif +assets/ +skills/last30days/assets/ +.DS_Store +.coverage +htmlcov/ +dist/ +work/ +print/ + +# Repo/dev automation and host-specific package metadata +.github/ +.agents/ +.claude-plugin/ +hooks/ +mcp/ +gemini-extension.json +greptile.json +pyproject.toml + +# Non-runtime docs, plans, release notes, fixtures, and tests +docs/ +fixtures/ +tests/ +plans/ +agents/ +variants/ +media/ +README.md +CHANGELOG.md +AGENTS.md +CLAUDE.md +CONCEPTS.md +CONFIGURATION.md +CONTRIBUTORS.md +HERMES_SETUP.md +release-notes.md +SKILL-original.md +SPEC.md +TASKS.md + +# Dev/eval scripts shipped inside the skill tree but not needed at runtime +skills/last30days/scripts/build-skill.sh +skills/last30days/scripts/compare.sh +skills/last30days/scripts/evaluate_search_quality.py +skills/last30days/scripts/setup-keychain.sh +skills/last30days/scripts/setup-pass.sh +skills/last30days/scripts/test_device_auth.py +skills/last30days/scripts/test-v1-vs-v2.sh +skills/last30days/scripts/verify_v3.py + +# Keep visible: optional runtime watchlist/store/briefing feature scripts +# (`watchlist.py`, `store.py`, and `briefing.py`). + +# Vendored third-party X-search client (node_modules analog); excluded from scan, still installed. +skills/last30days/scripts/lib/vendor/ diff --git a/.codex-plugin/plugin.json b/.codex-plugin/plugin.json new file mode 100644 index 0000000..71709a9 --- /dev/null +++ b/.codex-plugin/plugin.json @@ -0,0 +1,50 @@ +{ + "name": "last30days", + "version": "3.13.0", + "description": "Research any topic across Reddit, X, YouTube, TikTok, Instagram, Hacker News, Polymarket, GitHub, and the web.", + "author": { + "name": "Matt Van Horn", + "email": "mvanhorn@gmail.com", + "url": "https://github.com/mvanhorn" + }, + "homepage": "https://github.com/mvanhorn/last30days-skill", + "repository": "https://github.com/mvanhorn/last30days-skill", + "license": "MIT", + "keywords": [ + "competitor research", + "research", + "reddit", + "twitter", + "youtube", + "tiktok", + "instagram", + "trends", + "prompts", + "polymarket", + "github", + "perplexity", + "threads", + "pinterest", + "hacker-news" + ], + "skills": "./skills/", + "interface": { + "displayName": "last30days", + "shortDescription": "Research what people are saying about a topic now.", + "longDescription": "last30days adds a Codex skill for researching any topic based on recent discussion and engagement signals across Reddit, X, YouTube, TikTok, Instagram, Hacker News, Polymarket, GitHub, and the web.", + "developerName": "Matt Van Horn", + "category": "Research", + "capabilities": [ + "Interactive", + "Read", + "Write" + ], + "websiteURL": "https://github.com/mvanhorn/last30days-skill", + "defaultPrompt": [ + "TikTok shop trends", + "Codex vs Cursor", + "best travel credit cards" + ], + "brandColor": "#6F42C1" + } +} diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..436a296 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,43 @@ +# Exclude non-runtime files from `git archive` output. +# Used by skills/last30days/scripts/build-skill.sh to produce a +# claude.ai-upload-ready .skill file from the canonical skills/last30days tree. +# See docs/plans/2026-04-14-001-fix-skill-upload-200-file-limit-plan.md. + +# Anthropic canonical skill-packaging excludes +# (mirrors anthropics/skills/skills/skill-creator/scripts/package_skill.py) +__pycache__/ export-ignore +node_modules/ export-ignore +*.pyc export-ignore +.DS_Store export-ignore +evals/ export-ignore + +# Dev, docs, test, and media - not needed at skill runtime +tests/ export-ignore +docs/ export-ignore +fixtures/ export-ignore +assets/ export-ignore + +# NOTE: skills/ and .claude-plugin/ are NOT export-ignored here because +# Claude Code's /plugin install fetches this same git archive tarball. +# Removing those from the archive (as v3.0.1 did) silently breaks installs. +# claude.ai-bundle-specific exclusions live in scripts/build-skill.sh. + +# Historical + repo-only manifests +SPEC.md export-ignore +TASKS.md export-ignore +CONTRIBUTORS.md export-ignore +HERMES_SETUP.md export-ignore +CHANGELOG.md export-ignore +uv.lock export-ignore + +# Platform adapters are kept in git archives because Claude Code and Codex +# plugin installs use the same repository archive as their source payload. +.hermes-plugin/ export-ignore + +# CI workflows - repo-only, not needed at skill runtime +.github/ export-ignore + +# Build config itself +.clawhubignore export-ignore +.gitignore export-ignore +.gitattributes export-ignore diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..d853c93 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,53 @@ +name: Bug Report +description: Report a bug or unexpected behavior +labels: [bug] +body: + - type: textarea + id: summary + attributes: + label: Summary + description: What happened? + placeholder: Describe the bug in 1-2 sentences. + validations: + required: true + - type: textarea + id: repro + attributes: + label: Steps to Reproduce + description: How can we reproduce this? + placeholder: | + 1. Run `python3 skills/last30days/scripts/last30days.py "topic" --emit=compact` + 2. ... + validations: + required: true + - type: textarea + id: expected + attributes: + label: Expected Behavior + description: What should have happened? + validations: + required: true + - type: textarea + id: traceback + attributes: + label: Error / Traceback + description: Paste the full traceback or error output. + render: text + - type: dropdown + id: install + attributes: + label: Install Method + options: + - Claude Code plugin + - Gemini CLI extension + - Codex plugin + - Hermes skill + - Manual (git clone) + - Other + validations: + required: true + - type: input + id: os + attributes: + label: OS + placeholder: macOS 15.4, Ubuntu 24.04, Windows 11, etc. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..7a2c1f0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,24 @@ +name: Feature Request +description: Suggest a new feature or improvement +labels: [enhancement] +body: + - type: textarea + id: problem + attributes: + label: Problem + description: What problem does this solve? + placeholder: When I try to ..., I can't ... + validations: + required: true + - type: textarea + id: solution + attributes: + label: Proposed Solution + description: How should this work? + validations: + required: true + - type: textarea + id: alternatives + attributes: + label: Alternatives Considered + description: Other approaches you thought of (optional). diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..50ddb26 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,19 @@ +## Summary + + + +## Changes + + + +- + +## Testing + + + +- [ ] Ran `uv run python -m pytest -q --tb=short` + +## Related Issues + + diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 0000000..080a041 --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,37 @@ +This file contains Copilot-specific additions. See AGENTS.md for the shared cross-tool governance layer. + +# Copilot-specific guidance + +## Test generation + +- Prefer unittest.TestCase for generated tests to match the existing test suite. +- Mock external calls with unittest.mock.patch. + +## Pull request reminders + +Before suggesting a pull request: + +- Confirm that pytest passes. +- If changes were made anywhere under skills/last30days/, confirm the install copy has been refreshed with: + +npx skills add . -g -y + +## Vendor exclusion zone + +- Never suggest changes to skills/last30days/scripts/lib/vendor/. +- Treat skills/last30days/scripts/lib/vendor/ as a no-touch zone. + +## CI expectations + +GitHub CI runs: + +- pytest +- ruff + +Generated changes should pass both before review is requested. + +## CLI examples + +When suggesting CLI usage examples for safe local testing, default to: + +--emit=compact --mock diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..58f5ba4 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,22 @@ +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + schedule: + interval: weekly + cooldown: + default-days: 7 + + - package-ecosystem: uv + directory: / + schedule: + interval: weekly + cooldown: + default-days: 7 + + - package-ecosystem: gomod + directory: /mcp + schedule: + interval: weekly + cooldown: + default-days: 7 diff --git a/.github/workflows/osv-scanner.yml b/.github/workflows/osv-scanner.yml new file mode 100644 index 0000000..73b6a8c --- /dev/null +++ b/.github/workflows/osv-scanner.yml @@ -0,0 +1,31 @@ +name: OSV-Scanner + +# Scheduled OSV-Scanner workflow for vulnerability drift detection. +# Scans the repository lockfiles (uv.lock, mcp/go.sum) on a weekly schedule +# and uploads results to GitHub code scanning, so newly disclosed CVEs in +# the dependency tree are visible even between PRs. +# +# Advisory-first: fail-on-vuln is false until maintainers confirm a clean +# baseline, matching the pattern in security.yml. +# +# Separate from the pip-audit job in security.yml (which runs on every PR +# and push) and from the dependency-review gate (which blocks on new +# vulnerable deps at PR time). This workflow fills the scheduled-drift gap. + +on: + schedule: + # Weekly, Mondays at 12:30 UTC. + - cron: "30 12 * * 1" + workflow_dispatch: + +permissions: {} + +jobs: + scan-scheduled: + uses: google/osv-scanner-action/.github/workflows/osv-scanner-reusable.yml@9a498708959aeaef5ef730655706c5a1df1edbc2 # v2.3.8 + permissions: + contents: read + security-events: write + with: + # Advisory-first: surface results in code scanning without blocking. + fail-on-vuln: false diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..227f567 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,168 @@ +name: Release + +on: + push: + tags: + - "v*" + +permissions: {} + + +jobs: + # Build the existing .skill artifact (Claude Code / Codex / Cursor install + # surface). Unchanged from prior versions; just isolated into its own job + # so the .mcpb matrix can run in parallel. + build-skill: + runs-on: ubuntu-latest + permissions: + contents: read + id-token: write + attestations: write + steps: + - name: Checkout + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + fetch-depth: 0 + persist-credentials: false + + - name: Build .skill artifact + run: | + bash skills/last30days/scripts/build-skill.sh + test -f dist/last30days.skill + + - name: Attest .skill artifact provenance + uses: actions/attest@59d89421af93a897026c735860bf21b6eb4f7b26 # v4.1.0 + with: + subject-path: dist/last30days.skill + + - name: Upload skill artifact + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + with: + name: last30days-skill + path: dist/last30days.skill + + # Cross-compile the Go MCP server for each Claude Desktop platform and + # package each as a .mcpb. printing-press bundle handles the manifest + + # zip layout; we only supply the pre-built binary via --skip-build. + build-mcpb: + runs-on: ubuntu-latest + permissions: + contents: read + id-token: write + attestations: write + env: + MCPB_OUTPUT: mcp/build/last30days-pp-mcp-${{ matrix.goos }}-${{ matrix.goarch }}.mcpb + MCPB_PLATFORM: ${{ matrix.platform }} + strategy: + fail-fast: false + matrix: + include: + - goos: darwin + goarch: arm64 + platform: darwin/arm64 + - goos: darwin + goarch: amd64 + platform: darwin/amd64 + - goos: linux + goarch: amd64 + platform: linux/amd64 + steps: + - name: Checkout + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + persist-credentials: false + + - name: Set up Go + uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 + with: + # printing-press v4.8.0 declares `go >= 1.26.3`, newer than the + # engine's own floor in mcp/go.mod. Install a 1.26.x toolchain so the + # PP `go install` below is satisfied without a runtime toolchain + # download (which GOSUMDB=off would block). Building the MCP binary + # with a newer toolchain than mcp/go.mod declares is backward-safe. + go-version: "1.26" + cache: false + + - name: Install printing-press + # Pin to a known-good PP release so the bundle command's behavior + # is deterministic across our tags. Bump deliberately when adopting + # a newer PP version. GOSUMDB=off skips the sumdb 404 some + # private-namespaced go install calls hit even when the repo is + # public; harmless here because the module path is fully qualified. + env: + GOPRIVATE: github.com/mvanhorn/* + GOSUMDB: "off" + run: go install github.com/mvanhorn/cli-printing-press/v4/cmd/printing-press@v4.8.0 + + - name: Sync engine into vendored/ + run: bash mcp/scripts/sync-engine.sh + + - name: Build MCP binary + env: + GOOS: ${{ matrix.goos }} + GOARCH: ${{ matrix.goarch }} + CGO_ENABLED: "0" + RELEASE_VERSION: ${{ github.ref_name }} + run: | + mkdir -p mcp/build + go -C mcp build \ + -ldflags "-X main.Version=${RELEASE_VERSION}" \ + -o build/last30days-pp-mcp \ + ./cmd/last30days-pp-mcp + + - name: Bundle .mcpb + # printing-press bundle reads manifest.json from the cli dir and + # rewrites the binary into bin/ inside the zip. The + # --platform tag drives the output filename suffix; the binary + # itself is whatever we just cross-compiled. + run: | + printing-press bundle mcp \ + --skip-build \ + --binary mcp/build/last30days-pp-mcp \ + --platform "${MCPB_PLATFORM}" \ + --output "${MCPB_OUTPUT}" + + - name: Attest .mcpb artifact provenance + uses: actions/attest@59d89421af93a897026c735860bf21b6eb4f7b26 # v4.1.0 + with: + subject-path: ${{ env.MCPB_OUTPUT }} + + - name: Upload .mcpb artifact + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + with: + name: mcpb-${{ matrix.goos }}-${{ matrix.goarch }} + path: ${{ env.MCPB_OUTPUT }} + + # Gather every platform artifact and attach to one GitHub release. + release: + needs: [build-skill, build-mcpb] + runs-on: ubuntu-latest + permissions: + actions: read + contents: write + steps: + # gh release create --verify-tag shells out to git, so the job needs a + # checkout with the tag present; without it the step fails with + # "fatal: not a git repository". + - name: Checkout + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + fetch-depth: 0 + persist-credentials: false + + - name: Download all artifacts + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + with: + path: dist + merge-multiple: true + + - name: Create GitHub release + env: + GH_TOKEN: ${{ github.token }} + RELEASE_TAG: ${{ github.ref_name }} + run: | + gh release create "${RELEASE_TAG}" \ + dist/last30days.skill \ + dist/last30days-pp-mcp-*.mcpb \ + --generate-notes \ + --verify-tag diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml new file mode 100644 index 0000000..7e1abda --- /dev/null +++ b/.github/workflows/scorecard.yml @@ -0,0 +1,69 @@ +name: Scorecard + +# OpenSSF Scorecard tracks broader repo security-health drift (branch +# protection, token permissions, pinned actions, dangerous workflows, CI +# tests, maintenance signals) on a schedule, complementing the per-diff +# dependency-audit and secret-scan jobs in security.yml. +# +# Advisory-first: this workflow only measures and publishes a score, and it +# never blocks merges. It runs on the default branch (Scorecard needs repo-level +# data and a token, so it is not meaningful on PR forks) plus a weekly schedule +# so regressions in security health surface even when no code changes. + +on: + branch_protection_rule: + schedule: + # Weekly, Mondays at 07:00 UTC. + - cron: '0 7 * * 1' + push: + branches: + - main + workflow_dispatch: + +# Top-level token is read-only; the analysis job widens only what it needs. +permissions: read-all + +jobs: + analysis: + name: Scorecard analysis + runs-on: ubuntu-latest + # Job-level permissions fully replace the top-level block (unlisted scopes + # default to none), so the reads checkout and Scorecard need are explicit. + permissions: + # Needed by actions/checkout to clone the repo, and by Scorecard to read + # workflow files for its Dangerous-Workflow / Token-Permissions checks. + contents: read + actions: read + # Needed to upload the SARIF results to the code-scanning dashboard. + security-events: write + # Needed to publish results and obtain a badge (uses OIDC, no secrets). + id-token: write + + steps: + - name: Checkout + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + persist-credentials: false + + - name: Run OpenSSF Scorecard + uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3 + with: + results_file: scorecard.sarif + results_format: sarif + # Publishes results to the OpenSSF REST API for the public badge and + # trend tracking. Set to false if maintainers prefer to keep the + # score private (the SARIF upload below still works either way). + publish_results: true + + # Retain the raw SARIF as a build artifact for offline inspection. + - name: Upload artifact + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + with: + name: scorecard-sarif + path: scorecard.sarif + retention-days: 5 + + - name: Upload SARIF to code-scanning + uses: github/codeql-action/upload-sarif@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2 + with: + sarif_file: scorecard.sarif diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml new file mode 100644 index 0000000..9fed533 --- /dev/null +++ b/.github/workflows/security.yml @@ -0,0 +1,89 @@ +name: Security + +on: + pull_request: + push: + branches: + - main + workflow_dispatch: + +permissions: {} + +jobs: + dependency-audit: + name: Dependency audit + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - name: Checkout + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + persist-credentials: false + + - name: Install uv + uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0 + + # Block known vulnerabilities in the locked Python dependency graph. + - name: Run uv audit against locked dependencies + run: uv audit --locked + + dependency-review: + name: Dependency review + if: github.event_name == 'pull_request' + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - name: Checkout + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + persist-credentials: false + + - name: Review dependency changes + uses: actions/dependency-review-action@3b139cfc5fae8b618d3eae3675e383bb1769c019 # v4.5.0 + + secret-scan: + name: Secret scan + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - name: Checkout full history for diff-aware scanning + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + fetch-depth: 0 + persist-credentials: false + + # The action derives the commit range from the GitHub event and fails on + # verified secrets. Keep output limited to verified findings to avoid noisy + # unverified annotations. + - name: Run TruffleHog OSS secret scan + uses: trufflesecurity/trufflehog@30d5bb91af1a771378349dbbb0c82129392acf70 # v3.95.6 + with: + version: 3.95.5 + extra_args: --results=verified + + sast-scan: + name: SAST scan + runs-on: ubuntu-latest + permissions: + contents: read + container: + image: semgrep/semgrep@sha256:06938c1f365d3f67b8cedd8bc117607ae64253f88a0e768e9da9408548927dd6 # v1.167.0 + steps: + - name: Checkout + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + persist-credentials: false + + # Advisory-first: visibility before enforcement. Semgrep CE scans + # the repository with the community rule set (Python, shell, YAML, + # JavaScript, Go) to catch source-level security bugs before they + # reach production. Set continue-on-error: false once a clean baseline + # is confirmed. + - name: Run Semgrep SAST scan + continue-on-error: true + env: + SEMGREP_SEND_METRICS: off + run: semgrep scan --config=auto diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml new file mode 100644 index 0000000..f230b6f --- /dev/null +++ b/.github/workflows/validate.yml @@ -0,0 +1,68 @@ +name: Validate + +on: + pull_request: + push: + branches: + - main + +permissions: {} + +jobs: + tests: + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - name: Checkout + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + persist-credentials: false + + - name: Install uv + uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0 + + - name: Set up Python + run: uv python install 3.12 + + - name: Run test suite + run: uv run pytest --cov --cov-report=term-missing + + eval: + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - name: Checkout + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + persist-credentials: false + + - name: Install uv + uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0 + + - name: Set up Python + run: uv python install 3.12 + + - name: Score research quality + run: uv run pytest tests/eval -x -s + + mcp-tests: + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - name: Checkout + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + persist-credentials: false + + - name: Set up Go + uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 + with: + go-version: "1.25.5" + cache-dependency-path: mcp/go.sum + + - name: Run MCP Go tests + run: go test -race ./... + working-directory: mcp diff --git a/.github/workflows/zizmor.yml b/.github/workflows/zizmor.yml new file mode 100644 index 0000000..462fb61 --- /dev/null +++ b/.github/workflows/zizmor.yml @@ -0,0 +1,23 @@ +name: GitHub Actions Security Analysis with zizmor 🌈 + +on: + push: + branches: ["main"] + pull_request: + branches: ["**"] + +permissions: {} + +jobs: + zizmor: + runs-on: ubuntu-latest + permissions: + security-events: write + steps: + - name: Checkout repository + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + persist-credentials: false + + - name: Run zizmor 🌈 + uses: zizmorcore/zizmor-action@5f14fd08f7cf1cb1609c1e344975f152c7ee938d # v0.5.6 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8a3e36e --- /dev/null +++ b/.gitignore @@ -0,0 +1,51 @@ +# Private benchmark / evaluation artifacts — never push to upstream +docs/comparison-results/ +test-run.log +scripts/evaluate-synthesis.py +scripts/generate-synthesis-inputs.py +fixtures/polymarket_sample.json +docs/v2.1-tweets.md +docs/30-day-anniversary-thread.md +docs/30-day-anniversary-tweets.md +variants/open/references/research.md +docs/investigations/ + +# OS / tool files +.DS_Store +.claude/ +.entire/ +__pycache__/ +*.pyc +mise.toml +.memsearch/ +.venv/ +.coverage +htmlcov/ + +# Local secrets/config. Keep tracked examples if added later. +.env +.env.* +!.env.example + +# Root vendor/ is accidental - real vendored client lives at scripts/lib/vendor/bird-search/ +/vendor/ + +# build artifact from scripts/build-skill.sh +/dist/ + +# Go MCP bundle build outputs - source of truth for vendored/ stays under +# skills/last30days/scripts/; build/ holds cross-compiled binaries + .mcpb files. +# vendored/ lives inside the engine package because //go:embed cannot reach +# outside its own package directory; the .gitkeep anchor stays tracked so +# the embed pattern always finds a match even before sync-engine runs. +/mcp/internal/engine/vendored/* +!/mcp/internal/engine/vendored/.gitkeep +/mcp/build/ + +# Internal planning docs (ce:plan output) — keep local, don't publish +docs/plans/ +docs/brainstorms/ +.context/ + +/work +/print diff --git a/.grok-plugin/marketplace.json b/.grok-plugin/marketplace.json new file mode 100644 index 0000000..6840230 --- /dev/null +++ b/.grok-plugin/marketplace.json @@ -0,0 +1,25 @@ +{ + "name": "last30days-skill", + "owner": { + "name": "Matt Van Horn", + "url": "https://github.com/mvanhorn" + }, + "description": "Marketplace for the last30days research plugin", + "plugins": [ + { + "name": "last30days", + "description": "Research any topic across Reddit, X, YouTube, TikTok, Instagram, Hacker News, Polymarket, GitHub, and 5+ more sources. AI agent scores by upvotes, likes, and real money - not editors.", + "version": "3.13.0", + "category": "productivity", + "source": { + "source": "url", + "url": "https://github.com/mvanhorn/last30days-skill.git" + }, + "homepage": "https://github.com/mvanhorn/last30days-skill", + "keywords": [ + "last30days", + "last 30 days" + ] + } + ] +} diff --git a/.grok-plugin/plugin.json b/.grok-plugin/plugin.json new file mode 100644 index 0000000..628a219 --- /dev/null +++ b/.grok-plugin/plugin.json @@ -0,0 +1,18 @@ +{ + "name": "last30days", + "version": "3.13.0", + "description": "Research any topic across Reddit, X, YouTube, TikTok, Instagram, Hacker News, Polymarket, GitHub, and 5+ more sources. AI agent scores by upvotes, likes, and real money - not editors.", + "author": { + "name": "Matt Van Horn", + "email": "mvanhorn@gmail.com", + "url": "https://github.com/mvanhorn" + }, + "homepage": "https://github.com/mvanhorn/last30days-skill", + "repository": "https://github.com/mvanhorn/last30days-skill", + "license": "MIT", + "keywords": [ + "last30days", + "last 30 days" + ], + "skills": "./skills/" +} diff --git a/.skillignore b/.skillignore new file mode 100644 index 0000000..95be4d1 --- /dev/null +++ b/.skillignore @@ -0,0 +1,70 @@ +# Hermes install-time scanner/package exclusions for repository-root scans. +# Keep the public bundle focused on the runtime skill under skills/last30days/. + +# VCS, local envs, caches, and generated outputs +.git/ +.venv/ +__pycache__/ +*.pyc +*.log +*.jsonl +*.mp3 +*.jpeg +*.jpg +*.png +*.gif +assets/ +skills/last30days/assets/ +.DS_Store +.coverage +htmlcov/ +dist/ +work/ +print/ + +# Repo/dev automation and host-specific package metadata +.github/ +.agents/ +.claude-plugin/ +hooks/ +mcp/ +gemini-extension.json +greptile.json +pyproject.toml + +# Non-runtime docs, plans, release notes, fixtures, and tests +docs/ +fixtures/ +tests/ +plans/ +agents/ +variants/ +media/ +README.md +CHANGELOG.md +AGENTS.md +CLAUDE.md +CONCEPTS.md +CONFIGURATION.md +CONTRIBUTORS.md +HERMES_SETUP.md +release-notes.md +SKILL-original.md +SPEC.md +TASKS.md + +# Dev/eval scripts shipped inside the skill tree but not needed at runtime +skills/last30days/scripts/build-skill.sh +skills/last30days/scripts/compare.sh +skills/last30days/scripts/evaluate_search_quality.py +skills/last30days/scripts/setup-keychain.sh +skills/last30days/scripts/setup-pass.sh +skills/last30days/scripts/test_device_auth.py +skills/last30days/scripts/test-v1-vs-v2.sh +skills/last30days/scripts/verify_v3.py + +# Keep visible: optional runtime watchlist/store/briefing feature scripts +# (`watchlist.py`, `store.py`, and `briefing.py`). + +# Vendored third-party X-search client (node_modules analog); excluded from scan, still installed. +skills/last30days/scripts/lib/vendor/ diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..0ba40ad --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,112 @@ +# last30days Skill + +Agent Skills package for researching any topic across Reddit, X, YouTube, and web. Installable across Claude Code (most common host), Codex, Cursor, GitHub Copilot, Gemini CLI, Grok (xAI), and 50+ other [Agent Skills](https://agentskills.io) hosts. Python scripts with multi-source search aggregation. + +## Structure +- `skills/last30days/SKILL.md` — canonical skill definition / runtime spec the model reads when the slash command fires +- `skills/last30days/scripts/last30days.py` — main research engine +- `skills/last30days/scripts/lib/` — search, enrichment, rendering modules +- `skills/last30days/scripts/lib/vendor/bird-search/` — vendored X search client +- `docs/solutions/` — documented solutions to past problems (bugs, best practices, workflow patterns), organized by category with YAML frontmatter (`module`, `tags`, `problem_type`) +- `CONCEPTS.md` — shared domain vocabulary (Skill, Engine, Harness, Beta channel) — relevant when orienting to the codebase or discussing project terminology +- `CONFIGURATION.md` — user-facing knobs (env vars, flags, per-host install patterns); keep in sync per the rules below +- `CHANGELOG.md` — structured release history (launch copy lives in GitHub Releases) +- `HERMES_SETUP.md` — install instructions for the Hermes harness specifically + +## Orientation +- This is an Agent Skills package, not a CLI tool. The product is the slash-command-invoked skill (`/last30days ` in most harnesses); `scripts/last30days.py` is implementation. Claude Code is the most common host but not the only one — features must work across every harness the skill installs into. +- Feature design starts from the slash-command UX. A new engine flag with no SKILL.md integration is incomplete — the model invoking the skill won't know the flag exists. +- README and PR examples show `/last30days ` first. Direct CLI invocation (`python3 scripts/last30days.py ...`) is a fallback for scripting, cron, and dev-time engine testing; label it as such, never as the primary path. +- Slash commands don't pass shell mechanics through. `/last30days OpenClaw --emit=html | pbcopy` is invalid in any harness — either use the slash form (no flags or pipes; let the model translate user intent into engine flags) or use the direct CLI form (full `python3 ...` with explicit flags and a real shell). + +## Commands +```bash +# Dev/fallback: direct engine invocation (scripting, cron, or engine testing only). +# Saves to $LAST30DAYS_MEMORY_DIR when set in shell or ~/.config/last30days/.env; +# add --save-dir for a one-off override. Mirrors LAST30DAYS_STORE convention. +python3 skills/last30days/scripts/last30days.py "test query" --emit=compact +npx skills add . -g -y # copies skill into ~/.agents/skills// (frozen at install time); re-run to sync working-tree edits — see Rules below + +# Tests (pytest, ~89 files under tests/, configured in pyproject.toml) +uv run pytest # full suite +uv run pytest tests/test_dedupe_v3.py # single file +uv run pytest tests/test_dedupe_v3.py -k some_case # single case +uv run pytest --cov # with coverage (skips lib/vendor/) +``` + +Python 3.12+ required. Use `uv` for the env; the venv lives at `.venv/`. + +## Rules +- `lib/__init__.py` must be bare package marker (comment only, NO eager imports) +- One-time setup: `npx skills add . -g -y` copies the skill into `~/.agents/skills//` (real directory) and, for harnesses that support symlinked skill dirs, drops a per-host symlink pointing at that copy. **Working-tree edits do NOT propagate automatically** — the `~/.agents/skills//` copy is frozen at install time. To sync after edits, re-run `npx skills add . -g -y`. For live-edit on a dev machine, replace the install copy with a symlink to the working tree: `ln -sfn "$PWD/skills/last30days" ~/.agents/skills/last30days` (run from the repo root). +- Git remote: origin = public (`mvanhorn/last30days-skill`) +- Do not reduce `fail_under` in `pyproject.toml` (`[tool.coverage.report]`) without documenting why in the PR. The coverage gate is a floor meant to rise over time, not to be relaxed when new code is under-tested. +- Every `lib/*.py` call to `log.source_log(...)` must pass `tty_only=False`. The default is `True`, which silently drops every line when stderr isn't a TTY (Claude Code, Codex, CI, captured output) — turning source observability into invisible failure. Enforced by `tests/test_source_log_visibility.py`. +- **CLI-gated optional sources** (Digg via `digg-pp-cli`, YouTube via `yt-dlp`) activate only when `shutil.which` resolves the binary on the **agent subprocess PATH** — not merely when the file exists on disk. First-run setup installs Digg through `@mvanhorn/printing-press-library` (default `$HOME/.local/bin`); Hermes/OpenClaw gateways often need that directory on PATH. Setup must distinguish PATH-visible installs from off-PATH binaries and must not claim "now active" unless the engine gate would pass. See `docs/solutions/integration-issues/digg-cli-agent-path-setup-wizard.md`. +- **First-run onboarding is consent-driven, model-led, and host-split.** The setup subprocess does only mechanical work (cookie reads, tool installs, GitHub device-auth, and emitting the engine-owned welcome via `--welcome`) — it cannot prompt, so consent lives in `SKILL.md` Step 0. Two flows avoid model-authored prose that Claude Code folds or the model skips: in the **Modal Flow** the welcome pitch is embedded in the setup modal's question (the AskUserQuestion modal is the only always-fully-visible surface — a separate welcome message or `--welcome` Bash run gets buried behind "ctrl+o to expand"); the **Non-Modal Prose Flow** still uses `last30days.py --welcome` (relayed verbatim) since it has no modal. The GitHub device code is surfaced by a two-command split — `setup --github-start` returns the code fast (foreground, copies to clipboard) and `setup --github-poll` waits for authorization (`setup --github` still chains both for back-compat). Step 0 has TWO branches: a **Claude Code Modal Flow** (the restored v3.0.0 `AskUserQuestion`-driven NUX — welcome, Auto/Manual/Skip, cookie consent, ScrapeCreators offer, `INCLUDE_SOURCES` opt-in, first-topic picker) for hosts with modals, and a **Non-Modal Prose Flow** for hosts without (OpenClaw, Codex, Cursor, Gemini CLI, Grok). Both ask before reading cookies, surface the macOS Full Disk Access fix on permission-denied, and offer the ScrapeCreators GitHub signup (10,000 free calls) on every first run. A successful `setup --github` persists `SCRAPECREATORS_API_KEY` automatically (via `setup_wizard.write_api_key`, 0o600) and masks the key in stdout. Do NOT collapse the modal flow back into a bare silent `setup` call or flatten it to prose-only — the guided modals are the feature (they eroded once and were restored). The onboarding contract is locked by `tests/test_onboarding_contract.py`. The Step 5 source opt-in is two tiers, both comment-enabled: **Recommended** (TikTok + Instagram posts AND top comments, plus YouTube comments — `INCLUDE_SOURCES=tiktok,instagram,youtube_comments,tiktok_comments,instagram_comments`) and **Everything** (also Threads + Pinterest). Comments are on by default (posts on → comments on for all three platforms); **Threads and Pinterest are the only opt-in extras**, appearing only in the Step 5 Everything option, never in the welcome or the Step 4 offer. Instagram comments are fetched via ScrapeCreators (`/v2/instagram/post/comments`, ranked by `comment_like_count`) with full vote-weighting parity to YouTube/TikTok (a dedicated `_instagram_engagement` carve-out, the `_VOTE_LOG_REFERENCE`/label/threshold entries). The cross-platform "Top Community Comments" list (`render._render_top_comments`) selects **round-robin by within-platform rank** (every platform's #1, then #2, then #3) so a viral platform can't crowd out a smaller one, and drops the per-platform absolute floor so a less-watched video's killer low-vote comment still surfaces. + +## Security hygiene +- Never commit real API keys, browser cookies, auth tokens, app passwords, access tokens, or `.env` contents. +- Use the env-based auth patterns in `skills/last30days/scripts/lib/env.py`; tests and fixtures must use obvious dummy values only. +- Keep examples safe by redacting secrets and avoiding copy/pasteable live credentials in docs, fixtures, and test data. +- Do not weaken or disable the advisory security workflow (`.github/workflows/security.yml`) without explaining why in the PR description or review thread. + +## Maintaining CONFIGURATION.md + +`CONFIGURATION.md` is the user-facing configuration reference — save paths, per-source API keys, web-search backend priority, trend-monitoring stack, per-client install patterns. Distinct from `SKILL.md` (the canonical runtime spec). + +Update `CONFIGURATION.md` when: + +- adding a new env var (e.g. `LAST30DAYS_*`, `BSKY_*`, `*_API_KEY`) +- adding a new CLI flag that affects configuration (e.g. `--store`, `--web-backend`) +- adding a new per-client install pattern (Claude Code, Gemini, Codex, Cursor, Grok, Hermes…) +- adding a new optional source that requires its own credential +- changing the priority order of config layers (per-run flag > env > `.env` file > defaults) + +Keep the existing structure organized by how often each layer is touched: per-run flags → env vars / `.env` → optional trend-monitoring stack → per-client patterns. Add new content into the right section rather than appending at the end. + +When a new config concept lands in `SKILL.md` or `AGENTS.md`, mirror the user-facing knob in `CONFIGURATION.md` so non-agent readers can configure the skill without reverse-engineering it from the runtime spec. + +## Plugin manifests (Grok) + +The repo doubles as a native Grok Build plugin via `.grok-plugin/plugin.json` + `.grok-plugin/marketplace.json`. Grok also reads `.claude-plugin/*` for compatibility; the native pair is the first-class lane and what an official xAI marketplace listing points at. The self-hosted catalog uses a bare Git URL source (`{"source":"url","url":"https://github.com/mvanhorn/last30days-skill.git"}`) so `grok plugin marketplace add mvanhorn/last30days-skill` tracks HEAD — not a self-referential local `path: "."` (Grok does not enumerate those). Version lockstep with Claude/Codex/Gemini manifests is enforced by `tests/test_plugin_contract.py`. Validate with `grok plugin validate .`. + +## Submitting to the xAI plugin marketplace + +Getting last30days into xAI's official catalog (`xai-org/plugin-marketplace`) is an outbound PR to *their* repo — an index that only points at our source, so nothing of last30days is vendored there. Do this **after** the change you want to ship has merged to `main`: the entry pins a commit that must already exist. + +1. Fork `xai-org/plugin-marketplace` and branch from `main`. +2. Get the commit to pin — a full 40-char lowercase SHA; a branch, tag, or short SHA is rejected by their validator: + ```bash + git ls-remote https://github.com/mvanhorn/last30days-skill.git HEAD + ``` +3. Add one entry to their `.grok-plugin/marketplace.json` under `plugins[]`, a remote source pinned to that SHA: + ```json + { + "name": "last30days", + "description": "Research any topic across Reddit, X, YouTube, TikTok, Instagram, Hacker News, Polymarket, GitHub, and 5+ more sources. AI agent scores by upvotes, likes, and real money - not editors.", + "category": "productivity", + "source": { + "source": "url", + "url": "https://github.com/mvanhorn/last30days-skill.git", + "sha": "" + }, + "homepage": "https://github.com/mvanhorn/last30days-skill", + "keywords": ["last30days", "last 30 days"] + } + ``` +4. Regenerate their component index (never hand-edit it) and validate exactly as their CI does: + ```bash + python3 scripts/generate-plugin-index.py + python3 scripts/validate-catalog.py + python3 scripts/generate-plugin-index.py --check + ``` +5. Open the PR, fill in their template, and wait for code-owner review. + +To roll out a later update in their catalog, bump the pinned `sha` in the existing entry — never open a second, parallel entry. + +Do not confuse this with our own `.grok-plugin/marketplace.json`: that file makes this repo directly addable as a Grok marketplace (`grok plugin marketplace add mvanhorn/last30days-skill`) and uses a **bare URL** source (no SHA) so it tracks HEAD; the xAI entry above lives in *their* repo and uses a **remote** source pinned to a SHA. + +## Beta channel + +Experimental changes get tested on `mvanhorn/last30days-skill-private`, which installs as a parallel `/last30days-beta` slash command. Beta-only changes never ship to public without a review PR here. Workflow guide lives at `BETA.md` in the private repo. Plan that established this setup: `docs/plans/2026-04-17-005-feat-beta-skill-from-private-repo-plan.md`. diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..e4632aa --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,840 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [3.13.0] - 2026-07-12 + +### Added + +- Xiaohongshu (RED) documented as a first-class requested-only source, with auto-detection of a logged-in local browser-session service: last30days probes `http://localhost:18060` then `http://host.docker.internal:18060` when the source is opted in; `XIAOHONGSHU_API_BASE` remains the explicit override. Zero probing and zero behavior change for users who have not opted in. ([#766](https://github.com/mvanhorn/last30days-skill/pull/766), thanks @yuzhiyang1) +- DripStack as an opt-in source: premium financial newsletter and analyst-writeup search (free public API, no key), complementing StockTwits retail sentiment and Polymarket odds with professional analyst signal. Ships default-off; requests route through the shared HTTP layer and honor the 30-day window. ([#791](https://github.com/mvanhorn/last30days-skill/pull/791), thanks @zimoo354) +- Persistent opt-in for both new sources via `INCLUDE_SOURCES=xiaohongshu` / `INCLUDE_SOURCES=dripstack` in `.env`, matching the LinkedIn/Perplexity pattern; per-run `--search` still works. ([#812](https://github.com/mvanhorn/last30days-skill/pull/812)) + +### Fixed + +- Whitespace in comma-separated `INCLUDE_SOURCES` values no longer silently breaks any source's persisted opt-in. ([#812](https://github.com/mvanhorn/last30days-skill/pull/812)) +- DripStack article bodies (subtitle/lede) now reach ranking and synthesis instead of only the capped snippet; the Xiaohongshu doctor prescription no longer recommends an env pin that disables auto-probing. ([#811](https://github.com/mvanhorn/last30days-skill/pull/811)) +- Release hygiene: SKILL.md body header and uv.lock are regenerated with the version bump (both were missed in the 3.12.0 cut and hotfixed on main). + +## [3.12.0] - 2026-07-12 + +### Added + +- Typed per-run source outcomes: every run records what actually happened per source (`ok`, `no-results`, `partial`, `rate-limited`, `auth-failed`, `unreachable`, `timeout`, `schema-drift`, `skipped-unconfigured`, `error`) in `source_status`, with doctor-aligned states and fix hints - silence is never mistaken for coverage. ([#797](https://github.com/mvanhorn/last30days-skill/pull/797)) +- Versioned agent JSON export profile: `--emit=json --json-profile=agent` returns a stable machine contract (`schema_version` 1.2) with `source_status`, clusters, ranked results with joinable `candidate_id`, and freshness verdicts; `--json-profile=raw` keeps the legacy dump byte-identical. ([#798](https://github.com/mvanhorn/last30days-skill/pull/798), [#810](https://github.com/mvanhorn/last30days-skill/pull/810)) +- Research-quality eval harness: recorded-fixture regression suite scoring runs on citation grounding, recency compliance, cluster coherence, coverage, and determinism against per-fixture floors, in CI. ([#799](https://github.com/mvanhorn/last30days-skill/pull/799)) +- `--drill`: re-research one cluster of the cached report in depth without a full re-run. ([#800](https://github.com/mvanhorn/last30days-skill/pull/800)) +- `--discover`: topic-less trending sweeps over listing feeds with velocity-ranked story clusters and ready-to-run research commands. ([#801](https://github.com/mvanhorn/last30days-skill/pull/801)) +- `library feed`: renders every saved brief into a browsable HTML library with a topic-grouped index and a subscribable Atom feed; hand-written pages are preserved with backups. ([#802](https://github.com/mvanhorn/last30days-skill/pull/802)) +- `library search`: SQLite FTS5 full-text search across saved briefs and store sightings, plus a passive "From your library" section when new runs overlap past research; scoped `--save-dir` libraries stay fully isolated from the shared store. ([#803](https://github.com/mvanhorn/last30days-skill/pull/803)) +- `--register` audience templates: `exec`, `dev`, and `creator` presets reshape section order and budgets for the reader; `eli5` is unified into the same mechanism. ([#804](https://github.com/mvanhorn/last30days-skill/pull/804)) +- `--verify-freshness`: typed per-claim act-time verdicts (`current` / `stale` / `contradicted` / `unsupported`) with point re-fetch of Polymarket lines, GitHub stars, and StockTwits sentiment, inline or post-hoc over the cached report; closes the recency-promise audit gap. ([#805](https://github.com/mvanhorn/last30days-skill/pull/805), closes [#769](https://github.com/mvanhorn/last30days-skill/issues/769)) +- `--corpus`: register local directories as a private, offline, deterministic source; matching notes rank alongside social evidence under a LOCAL ONLY badge and are excluded from hosted publishing and agent JSON by default. ([#808](https://github.com/mvanhorn/last30days-skill/pull/808)) +- Native Grok Build (xAI) plugin and marketplace lane: `.grok-plugin/plugin.json` + `.grok-plugin/marketplace.json` so `grok plugin install mvanhorn/last30days-skill` and `grok plugin marketplace add mvanhorn/last30days-skill` work as first-class install paths. The self-hosted catalog uses a bare Git URL source (tracks HEAD); submitting to the official `xai-org/plugin-marketplace` remains a post-merge SHA-pinned outbound PR documented in `AGENTS.md`. + +### Fixed + +- Session-start hook no longer deadlocks under Homebrew bash 5.3: removed every heredoc from `check-config.sh` (bash 5.3 can block forever in `heredoc_write` inside command substitution). ([#809](https://github.com/mvanhorn/last30days-skill/pull/809)) +- Trustpilot transient-error retries keep their domain parameters. ([#794](https://github.com/mvanhorn/last30days-skill/pull/794)) +- Hosted same-day saves no longer overwrite earlier reports, and `save_output` never silently overwrites date-stamped files. ([#784](https://github.com/mvanhorn/last30days-skill/pull/784), [#785](https://github.com/mvanhorn/last30days-skill/pull/785)) +- `.env` reads as UTF-8 (with BOM tolerance and locale fallback) on Windows. ([#780](https://github.com/mvanhorn/last30days-skill/pull/780), [#715](https://github.com/mvanhorn/last30days-skill/pull/715)) +- `FUN_LEVEL` and `LAST30DAYS_REPORT_CACHE_TTL_SECONDS` are registered in `env.py` so `.env` values are no longer silently ignored; doctor detects `GITHUB_TOKEN` from the process environment. ([#708](https://github.com/mvanhorn/last30days-skill/pull/708), [#732](https://github.com/mvanhorn/last30days-skill/pull/732), [#782](https://github.com/mvanhorn/last30days-skill/pull/782)) +- File descriptors close promptly across the engine (`open()` wrapped in `with`). ([#775](https://github.com/mvanhorn/last30days-skill/pull/775)) + +## [3.11.0] - 2026-07-05 + +### Added + +- `last30days doctor`: a unified health command that aggregates every source's probe state into a single grouped report with copy-pasteable fix prescriptions. Layered design: dependency probes (missing/broken/timeout detection), backend-chain descriptors (predict-then-report, never a network call), a centralized prescription registry shared by doctor and quality nudges, and an aggregator with grouped rendering. Replaces the fragmented health knowledge previously spread across `--diagnose`, `--preflight`, `lib/health.py`, and post-run nudges. ([#753](https://github.com/mvanhorn/last30days-skill/pull/753)) + +### Fixed + +- Techmeme: `search` results are now windowed to each record's own ISO date instead of stamping every record with today's date, so years-old archive headlines can no longer surface as current news. Dated in-window records take result-cap slots first; undated records (old `techmeme-pp-cli` binary or upstream markup change) degrade gracefully with a logged upgrade hint. The sync machinery is removed because `search` never read the local cache. ([#752](https://github.com/mvanhorn/last30days-skill/pull/752)) +- LinkedIn now renders in the emoji-tree footer (👔 with likes/comments), the `## Stats` engagement summary, and with the correct "LinkedIn" label. Previously LinkedIn items were counted in `## Stats` but silently dropped from the footer because `_FOOTER_SOURCES`, `ENGAGEMENT_DISPLAY`, and `SOURCE_LABELS` all omitted the source - an 8-item LinkedIn run looked like the source never ran. ([#758](https://github.com/mvanhorn/last30days-skill/pull/758)) + +## [3.10.0] - 2026-07-04 + +### Added + +- Instagram comments as a first-class ScrapeCreators source: `instagram.enrich_with_comments` fetches top comments via `GET /v2/instagram/post/comments` (ranked by `comment_like_count`), gated by `SCRAPECREATORS_API_KEY` + `instagram_comments` in `INCLUDE_SOURCES`. Full vote-weighting parity with YouTube/TikTok - a dedicated `_instagram_engagement` gives IG posts the same top-comment ranking carve-out, and IG comments render with a "likes" label. ([#751](https://github.com/mvanhorn/last30days-skill/pull/751)) +- Comments are now on by default: the first-run Step 5 Recommended tier enables top comments for TikTok, Instagram, and YouTube (`INCLUDE_SOURCES=tiktok,instagram,youtube_comments,tiktok_comments,instagram_comments`); the Everything tier adds Threads + Pinterest. Comments were previously an opt-in "Everything" feature. ([#751](https://github.com/mvanhorn/last30days-skill/pull/751)) + +### Changed + +- The cross-platform "Top Community Comments" list now selects **round-robin by within-platform rank** (every platform's #1, then #2, then #3) instead of a global vote-magnitude sort, so the top-3-of-each-platform outranks the 4th-of-any and each platform's #1 is guaranteed a slot - a viral platform can no longer sweep the list. The list also drops the per-platform absolute vote floor so a less-watched video's high-signal low-vote comment still surfaces (the per-candidate card keeps its floor). ([#751](https://github.com/mvanhorn/last30days-skill/pull/751)) + +### Fixed + +- First-run wizard: the welcome pitch is embedded directly in the setup modal (the only always-visible surface) instead of a separate `--welcome` message that Claude Code folds behind "ctrl+o to expand"; the cookie-consent and ScrapeCreators-offer copy now name every installed CLI (yt-dlp, Digg, arXiv, Techmeme) and describe the key's real reach (auto Reddit enrichment + YouTube search backstop), with the GitHub device code auto-copied to the clipboard. ([#750](https://github.com/mvanhorn/last30days-skill/pull/750)) + +## [3.9.4] - 2026-07-04 + +### Fixed + +- First-run wizard: the welcome message and the ScrapeCreators GitHub device code are now engine-driven instead of model-authored, because a real cold run showed the model skipping the welcome and never surfacing the device code no matter how forceful the SKILL.md prose. The welcome is printed by a new `last30days.py --welcome` command that Step 1 relays verbatim (single source of truth; it can't be skipped or drift), and the GitHub device flow is split into `setup --github-start` (submits, copies the code to the clipboard, prints it to stdout, opens the browser, returns immediately) and `setup --github-poll` (waits for authorization and persists the key). The one-shot `setup --github` still chains both. The code now always appears in the command output, and the "on your clipboard" claim is only made when the copy actually succeeded. ([#748](https://github.com/mvanhorn/last30days-skill/pull/748)) + +## [3.9.3] - 2026-07-04 + +### Added + +- Optional remote research API backend (env-driven). When both `LAST30DAYS_API_KEY` and `LAST30DAYS_API_BASE` are set in the process environment (never read from `.env`), a search runs through the configured remote endpoint (submit -> poll with stderr progress -> render) instead of local sources; with either unset, behavior is byte-identical to local-only. Opt-in and inert by default (no built-in endpoint); the key is confined to the `Authorization` header and never logged or persisted. Handles the clarify gate and 401/402/429 paths. ([#747](https://github.com/mvanhorn/last30days-skill/pull/747)) + +### Fixed + +- First-run wizard: the welcome message is now mandated before the setup modal (it was being skipped), the Auto-setup option lists every installed CLI (yt-dlp, Digg, arXiv, Techmeme, not just two), and the ScrapeCreators GitHub signup reliably surfaces the device code with an "it's on your clipboard, just paste" hint as a required step instead of leaving the user staring at a spinner. ([#746](https://github.com/mvanhorn/last30days-skill/pull/746)) +- ScrapeCreators GitHub signup: an already-linked account whose `.env` is cold no longer fails with the misleading "GitHub auth didn't complete." The `Authorized but failed to fetch API key` case now gets an honest branch (auth worked; the account is likely already linked -- get your key from scrapecreators.com and paste it), and `fetch_api_key` logs the `/profile` response field names (never values) so a full auto-fetch can follow. ([#746](https://github.com/mvanhorn/last30days-skill/pull/746)) + +## [3.9.2] - 2026-07-03 + +### Fixed + +- Trustpilot source returned 0 items on company topics: the engine passed raw topic names to a domain-keyed CLI (`info ThriftBooks` -> HTTP 404) and parallel subqueries raced concurrent Chrome WAF-cookie harvests. Company names now resolve to their Trustpilot review-page domain via the CLI's search (per-topic cache; name-match mandatory, ambiguous cases fall back rather than misattributing another company's reviews), a new `--trustpilot-domain` flag pins the domain explicitly (verbatim, bypasses the brand-shape gate, per-entity `trustpilot_domain` in `--competitors-plan`), the WAF session warms once per 240s window behind a lock at first fetch, Trustpilot is capped to one fetch per run and excluded from the thin-source retry, and headless `--auto-resolve` fills a verified domain hint. SKILL.md Step 0.5d documents the resolution flow. ([#745](https://github.com/mvanhorn/last30days-skill/pull/745)) + +## [3.9.1] - 2026-07-03 + +### Fixed + +- First-run setup wizard: the browser-cookie scan now tries Chrome/Chromium first (Keychain, no Full Disk Access) before Safari, so macOS users logged into X in Chrome authenticate in ~2s instead of hitting the Safari Full Disk Access dead-end. The winning browser is pinned for later runs only when it is Firefox/Safari, so Chrome never re-triggers the Keychain prompt. Consent copy leads with Chrome and the one-time "Always Allow" cue. ([#744](https://github.com/mvanhorn/last30days-skill/pull/744)) +- ScrapeCreators GitHub signup now surfaces the device code immediately (emitted to stdout so a backgrounded caller shows it at once, instead of a spinner until the process exits), validates the `XXXX-XXXX` code shape before copying/labeling it, short-circuits an already-registered account without a fresh device dance, and masks the API key on every status (not just success). Removed the false "GitHub CLI ~2 seconds, no browser" promise. ([#744](https://github.com/mvanhorn/last30days-skill/pull/744)) +- ScrapeCreators source opt-in is now two real tiers. The Step 5 choices were previously identical — a key auto-ran TikTok, Instagram, Threads, and YouTube comments regardless of `INCLUDE_SOURCES`, and Pinterest's opt-in silently ignored a persisted `INCLUDE_SOURCES`. Threads, YouTube comments, and Pinterest are now genuine `INCLUDE_SOURCES` opt-ins: **Recommended** = TikTok + Instagram + the rate-limit backups; **Everything** = also Threads, Pinterest, and YouTube/TikTok/Instagram comments. "ScrapeCreators backups" is now defined inline (keeps Reddit/YouTube working at rate limits). ([#744](https://github.com/mvanhorn/last30days-skill/pull/744)) + +## [3.9.0] - 2026-07-03 + +### Added + +- StockTwits as a source, gated to ticker/crypto topics only. Surfaces a retail sentiment ratio (self-reported Bullish/Bearish tags) and message volume on a resolved symbol. Inert on non-financial topics: an unambiguous finance-vocabulary gate (cashtags, "stock", "earnings", "dividend", "crypto", named coins) keeps it from injecting stock chatter into general runs, and it degrades to an empty lane if the public API fails without touching other sources. ([#658](https://github.com/mvanhorn/last30days-skill/pull/658), thanks @wtiwana) +- LinkedIn as a source via ScrapeCreators, surfacing articles as high-signal results with date-range filtering, gated behind `INCLUDE_SOURCES`. ([#702](https://github.com/mvanhorn/last30days-skill/pull/702)) +- arXiv and Techmeme sources (default-on) plus Trustpilot (opt-in). ([#709](https://github.com/mvanhorn/last30days-skill/pull/709)) + +### Fixed + +- Runtime preflight now auto-provisions a uv-managed CPython 3.12 on hosts that have `uv` but no system Python 3.12+ (most agent sandboxes), instead of hard-failing the version gate. The install is bounded by a 30s HTTP timeout, matches an existing managed `>=3.12` interpreter before downloading, and announces the one-time ~28MB download on stderr rather than installing silently; hosts without `uv` still get the original clear error. Setup invocations now honor `LAST30DAYS_PYTHON` so first-run setup works on the same hosts. ([#738](https://github.com/mvanhorn/last30days-skill/pull/738), thanks @buntysomroy; setup-interpreter fix adapted from #699 by @SeanGearin) +- Setup wizard summary now displays the install status of the arXiv/Techmeme pp_sources CLIs, so users can see whether they landed on PATH. ([#741](https://github.com/mvanhorn/last30days-skill/pull/741), thanks @23241a6749) +- `--diagnose` / `--preflight` no longer falsely reports X as unreachable when X auth comes from `FROM_BROWSER` browser cookies. These modes run in `plan_only` and skip cookie extraction for privacy (no Keychain access), so X was dropped from `available_sources` even though a real run authenticates fine. A new side-effect-free `env.x_pending_browser_auth` predicate now reports X as available-pending-browser-auth (and surfaces an `x_pending_browser_auth` flag in `--diagnose`) by keying only on the already-resolved browser list — no cookie is read. Covers every configured browser, including Chrome. ([#692](https://github.com/mvanhorn/last30days-skill/issues/692); first reported and fixed by @23241a6749 in #700) + +### Internal + +- Tightened Hermes `.skillignore` regression coverage: the test now fails if an ignored path is deleted without updating the ignore list, or if a runtime-contract file is accidentally ignored. ([#739](https://github.com/mvanhorn/last30days-skill/pull/739), thanks @SyntaxSawdust) + +## [3.8.3] - 2026-06-25 + +### Added + +- Free Reddit gets dedicated-subreddit lanes: entity-home subs (e.g. r/Kanye for "Kanye West", via the new `--dedicated-subreddits` flag) are pulled in full from top+hot+new listings and exempt from the relevance floor, since the whole sub is the topic. Fixes the over-aggressive floor that dropped on-topic posts whose titles lacked the entity name. +- `reddit_arctic` resolves upvote counts for threads found only via RSS search (which carries no score) using the free, keyless arctic-shift archive — batched, paced, cached, and graceful-degrading. Reddit now gets headlines-with-points and best-comments-with-points entirely for free, at parity with ScrapeCreators. +- `LAST30DAYS_REDDIT_SC_MIN_ITEMS` (default 0 = unchanged empty-only behavior): set above 0 to let the ScrapeCreators backup backfill a thin free Reddit run instead of sitting idle. Backfilled items merge deduped by post id. + +### Removed + +- The permanently-403 `search.json` Tier 0 is gone from the keyless Reddit path; discovery is RSS breadth + shreddit listing partials (real scores) + the dedicated-sub lanes, with no wasted 403 calls. + +## [3.8.2] - 2026-06-25 + +### Added + +- Advisory Semgrep SAST scan runs on every push/PR as part of the Security workflow, catching source-level security bugs using Semgrep CE community rules ([#563](https://github.com/mvanhorn/last30days-skill/issues/563)) +- Scheduled OSV-Scanner vulnerability-drift workflow scans repository lockfiles weekly and uploads SARIF results to GitHub code scanning, catching newly disclosed CVEs in the dependency tree even between PRs ([#571](https://github.com/mvanhorn/last30days-skill/issues/571)) +- `LAST30DAYS_REDDIT_BACKEND=scrapecreators` makes ScrapeCreators the primary Reddit backend with the public path as fallback. Users with a ScrapeCreators key who were getting shallow public data will now get full nested comment trees by setting this flag ([#589](https://github.com/mvanhorn/last30days-skill/issues/589)) +- MCP Go tests (`mcp/`) now run in CI on every push/PR alongside the Python test suite, so MCP server regressions are caught before merge ([#621](https://github.com/mvanhorn/last30days-skill/issues/621)) +- PR dependency review gate blocks merges that introduce new vulnerable dependencies ([#551](https://github.com/mvanhorn/last30days-skill/issues/551)) + +### Changed + +- Citations are now renderer-aware (LAW 8). On hidden-link hosts (Claude Code) every citation stays an inline `[name](url)` link as before; on visible-URL hosts (Codex, Cursor, Gemini CLI, raw CLI) citations render as plain source labels so the narrative no longer turns into `label (https://...)` URL soup. The host is detected deterministically from the `CLAUDECODE` environment variable, and full URLs remain reachable through the engine footer and the saved raw file. + +### Fixed + +- The query-plan invocation guidance now warns against wrapping the heredoc in `bash -lc '...'` / `zsh -lc '...'`, whose single quotes terminate at the first apostrophe in a ranking string and abort the engine run with `unmatched "` on Codex. The quoted `<<'PLAN_EOF'` heredoc is already apostrophe-safe; the `-lc` wrapper was the hazard. +- Firefox profile detection on Linux now checks `$XDG_CONFIG_HOME/mozilla/firefox` (or its default `~/.config/mozilla/firefox`) in addition to `~/.mozilla/firefox`, fixing cookie extraction on distros that honour the XDG Base Directory Specification ([#667](https://github.com/mvanhorn/last30days-skill/issues/667)) + +## [3.8.1] - 2026-06-22 + +### Added +- **Restored the v3.0.0 first-run NUX wizard (Claude Code Modal Flow).** Step 0 now restores the original guided, `AskUserQuestion`-driven onboarding that eroded over time: a welcome message, an Auto/Manual/Skip setup modal, a cookie-consent modal, the ScrapeCreators signup offer, a TikTok/Instagram `INCLUDE_SOURCES` opt-in, and a first-topic picker. It is gated to hosts with modals; hosts without (OpenClaw, Codex, Cursor, Gemini CLI) get the equivalent **Non-Modal Prose Flow**. Digg is threaded into the install messaging alongside yt-dlp everywhere it appears, the ScrapeCreators credit count is `10,000 free calls`, and the flow is locked against re-erosion by `tests/test_onboarding_contract.py`. Builds on the consent-driven foundation from #659/#660. Original wizard captured at `docs/reference/old-nux-wizard-v3.0.0.md`. +- **Consent-driven first-run onboarding.** Step 0 now drives an in-chat consent flow instead of a silent `setup` run: the model asks before reading browser cookies (decline runs with `FROM_BROWSER=off` — still installs yt-dlp + Digg), surfaces the macOS Full Disk Access fix when a cookie read is permission-denied, and offers the ScrapeCreators GitHub signup on every first run. A successful `setup --github` now **persists `SCRAPECREATORS_API_KEY` automatically** (`setup_wizard.write_api_key`, 0o600) and masks the key in stdout so the secret never lands in the host model's captured output. Follows the first-run gate fix (#659). + +### Fixed +- **First-run setup no longer runs silently.** The prior Step 0 told the model to run `setup` and "follow the wizard's prompts end-to-end", but the wizard has no prompts — so onboarding extracted cookies, installed tools, and wrote `SETUP_COMPLETE` with zero interaction and never offered the ScrapeCreators signup. Reproduced 2026-06-22 (Fredy Montero, fresh macOS). + +## [3.8.0] - 2026-06-21 + +### Added + +- **Single X source with backend failover.** X is now one source backed by an ordered chain of interchangeable backends (xai, bird, xurl, xquik) with runtime failover, rather than separate sources. The key-based xquik backend reaches parity with bird, gaining the X-quality ranking and FROM/ABOUT handle lanes, so hosts that cannot supply browser cookies (OpenClaw, CI/cron, headless harnesses) get real X coverage from an xquik key alone. Handle lanes run via the first handle-capable backend in the chain even when a non-capable backend (xai/xurl) is primary. (#622) + +## [3.7.1] - 2026-06-21 + +### Fixed + +- GitHub repo stars are no longer mislabeled as "reactions" in the report footer. Repo cards use a distinct `stars` engagement key, velocity cards use `merged_prs`, and genuine issue/PR reaction counts keep their own `reactions` key. (#645, closes #642) +- Hacker News returned zero stories on every run: the Algolia query sent `points>2`, which the HN index no longer accepts as a filterable attribute, so every request 400'd. Dropped the server-side `points` filter; low-engagement demotion still happens at parse time. (#639) +- Polymarket surfaced off-topic markets and rendered a mangled footer. The relevance filter was fed the per-subquery string instead of the stable topic, and market labels were truncated mid-article into fragments like "an Anthropic Claude model score at: an 19%". Now filters on the stable topic and cleans the labels. (#640) + +## [3.7.0] - 2026-06-20 + +### Added + +- **Direct Perplexity API support.** When `PERPLEXITY_API_KEY` is set it is preferred over OpenRouter for the Perplexity source, unlocking first-party Search API results and async Deep Research. Adds `LAST30DAYS_PERPLEXITY_MODE=sonar|search|both` plus model, search-context, domain/language/country, recency, and reasoning-effort knobs. OpenRouter stays the Sonar compatibility fallback when no direct key is set. Async Deep Research preserves request id, status, idempotency key, poll count, lifecycle timestamps, and failure metadata in raw artifacts. (#629, by @sk-holmes) + +### Changed + +- `check-config.sh` now parses env files in pure bash (no `sed` / `tr`), which also fixes the YouTube-availability hint breaking in minimal environments that lack those tools. (#629) + +## [3.6.1] - 2026-06-20 + +### Added + +- **ScrapeCreators transcript fallback.** When `SCRAPECREATORS_API_KEY` is set, YouTube transcripts fall back to the ScrapeCreators transcript endpoint after the keyless yt-dlp cascade fails (fetched server-side, so no 429 / cookies / PO tokens). yt-dlp stays primary and a credit is only spent on a genuine failure, never on success and never on a video proven to have no captions. With a key, yt-dlp also fails over fast (one short-timeout attempt) so a 429 hands off to ScrapeCreators in roughly 17s instead of roughly 90s. (#637, idea from #595) +- **YouTube comments default-on.** Comment enrichment now activates whenever a ScrapeCreators key is present (bounded to the top ~3 videos by engagement, ~3 credits per run) instead of requiring `INCLUDE_SOURCES=youtube_comments`. Suppress with `EXCLUDE_SOURCES=youtube_comments`. TikTok/Instagram comments remain `INCLUDE_SOURCES` opt-ins. (#637) + +### Fixed + +- **Salvage partial YouTube transcripts on non-zero yt-dlp exit.** With the default `en,es,pt` languages an English video wrote `en.vtt` then 429'd on `es`/`pt`, and the already-written transcript was discarded and retried back into the rate limit. Any VTT on disk is now read before the failure is classified, which fixes the dominant `0/N transcripts` case. (#636) +- **Windows transcript crash on subprocess timeout.** Guarded the SIGKILL escalation path in `run_with_timeout` against `os.killpg` / `os.getpgid` raising `AttributeError` on Windows (they are POSIX-only), mirroring the primary path's guard. (#638, reported in #588) + +## [3.6.0] - 2026-06-18 + +### Added + +- **First-party X posts are no longer buried.** A post authored by one of the run's resolved handles (`--x-handle`, `--x-related`, the GitHub user) is now treated as first-class evidence: it is exempt from the entity-miss demotion (a post never repeats its own author's name, so the body-text grounding check used to zero out the subject's own highest-signal posts) and gets a small authorship credit. Third-party collision-noise suppression is unchanged. +- **Engagement rescue for on-topic X posts.** A high-engagement X post that is first-party or entity-grounded gets a `final_score` floor scaled by its engagement percentile within the run's X pool, so a viral on-topic post can't sit at ~0. Off-topic name-collision posts are explicitly excluded. +- **First-party interaction signal.** A first-party post directed at another account (a reply / leading @mention) is floated into the visible band regardless of like-count and tagged `interaction:→@handle` in the EVIDENCE block, so the synthesis reads it as a relationship signal rather than low-engagement noise. New **LAW 10** in SKILL.md teaches the model to surface first-party posts and read the interaction tag. + +### Changed + +- The X FROM lane (the subject's own timeline) now pulls up to 8 posts per handle (was 3); the about/related lanes stay modest. + +### Fixed + +- Secrets `.env` and its parent config directory are now auto-tightened to `0o600`/`0o700` after creation, and `check-config.sh`'s `check_perms` now auto-fixes loose permissions with `chmod 600` instead of warning only ([#573](https://github.com/mvanhorn/last30days-skill/issues/573)) + +## [3.5.0] - 2026-06-18 + +### Added + +- **X surfaces tweets FROM and ABOUT a person, both engagement-weighted.** The handle search now pulls the person's real timeline (`from:handle since:`, topic used for ranking only — never AND'd into the query, which previously matched only tweets where they wrote their own name and returned ~0), and a new mention lane (`@handle since:`) surfaces what others say to/about them, excluding their own tweets and deduping against the FROM lane ([#610](https://github.com/mvanhorn/last30days-skill/pull/610)). +- **`## Top Community Comments` block.** The engine now surfaces vote-ranked community comments across all candidates (not just the top-cluster representatives), per-platform-normalized, into the EVIDENCE-for-synthesis block, so the funniest/sharpest crowd reactions reach the synthesizing model even when no LLM fun-scorer is available. Paired with a new SKILL.md **LAW 9** that requires weaving ≥2 verbatim attributed comments, copying URLs verbatim, and never narrating the tooling in the deliverable ([#608](https://github.com/mvanhorn/last30days-skill/pull/608)). + +### Fixed + +- **`--diagnose` honesty.** X status now reflects a real 1-tweet probe (downgrades from green when X is effectively dead; fail-open on a transient timeout) and reports the true auth lane (browser / env / keychain) instead of a hardcoded `env AUTH_TOKEN`. Handle/mention searches log query + result count on success, not only on failure ([#609](https://github.com/mvanhorn/last30days-skill/pull/609)). +- **X column de-pollution.** The last-chance keyword retry no longer collapses a multi-word subquery to a bare generic token (e.g. `compound`); it keeps an entity anchor ([#607](https://github.com/mvanhorn/last30days-skill/pull/607)). +- **Mandatory person-aware subquery disambiguation.** Collision-prone person names (Kevin Rose vs Kevin Warsh, Lan Xuezhao vs Lanzhou) must anchor every subquery with the resolved company/role/domain context ([#611](https://github.com/mvanhorn/last30days-skill/pull/611)). + +## [3.4.0] - 2026-06-18 + +### Added + +- **Crowd-vote weighting in the fun judge (Best Takes).** The fun judge now factors how many upvotes/likes each top comment earned. Comment vote counts are fed into the LLM prompt (as traction, not funniness), and Best-Takes selection ranks by an effective score — `fun_score` plus a bounded, per-platform-normalized, relevance-confidence-scaled crowd nudge — so genuinely funny, crowd-loved, on-topic comments surface while off-topic virality and high-voted-but-unfunny rants are excluded. `FUN_LEVEL=medium` stays the default and applies the signal as a meaningful factor ([#592](https://github.com/mvanhorn/last30days-skill/pull/592)). +- **Digg added to first-run setup.** The free, keyless `digg-pp-cli` is now auto-installed during the first-run wizard (best-effort via the Printing Press installer, with a recommend-only fallback), so the already-built Digg AI-news source activates automatically for new users instead of silently never appearing ([#590](https://github.com/mvanhorn/last30days-skill/pull/590)). + +- **`LAST30DAYS_YOUTUBE_SSH_HOST` transcript routing** — yt-dlp transcript fetch runs on the remote SSH host via a mktemp + cat pipeline ([#422](https://github.com/mvanhorn/last30days-skill/pull/422)). +- Browser-cookie auth for X/Twitter now covers the full Chromium family on macOS - Brave, Microsoft Edge, Vivaldi, Opera, Arc, and Chromium - alongside the existing Chrome, Firefox, and Safari. They all share Chrome's v10 AES-128-CBC decryption, differing only in profile path and Keychain service name, so they run through one shared decryption core. The profile finder probes both the modern `Default/Network/Cookies` layout (Chromium >= 96) and the legacy flat `Default/Cookies`, and Chrome now resolves through that same finder so it picks up the modern layout too. Set `FROM_BROWSER=auto` to try every browser, or `FROM_BROWSER=` (e.g. `brave`, `edge`, `arc`) to target one. Verified end-to-end on real Brave and Edge installs ([#572](https://github.com/mvanhorn/last30days-skill/pull/572)). +- **First-party positioning research + pitch-vs-pulse synthesis (company / product / service topics).** A new mandatory research step captures each entity's current stated positioning from first-party sources (homepage, docs, pricing) rather than from memory. The fetched pitch grounds `What it is` descriptions (entities described as they pitch themselves today), helps reject unrelated brand-name noise, and feeds an evidence-triggered prose beat: when the month's conversation directly supports a specific claim, cuts against one, or is squarely about the pitched ground, the synthesis says so anchored to the top thread — and stays silent when the pulse is orthogonal to the pitch, because a manufactured connection is worse than omission. Claims are tested at matched altitude (specific claims against specific threads; broad taglines are never graded against individual items), and statements stay windowed to the 30 days — no trend verdicts. Scoped to entities with an identifiable first party: people are always excluded (even founders whose companies qualify), as are events, abstract concepts, and ownerless topics like Bitcoin; the beat requires positioning fetched during the run, never from memory. + +### Changed + +- Updated "Unlock X" promo message to mention Chrome/macOS support and Windows Firefox-only limitation instead of generic "Firefox or Safari" ([#387](https://github.com/mvanhorn/last30days-skill/issues/387)) + +### Fixed + +- **SSH routing failures no longer present as "0 results"** — `search_youtube` surfaces non-zero SSH exit codes as an explicit `error` field ([#422](https://github.com/mvanhorn/last30days-skill/pull/422)). +- `extract_browser_credentials()` silently ignored Brave even though the lower-level `cookie_extract` layer already supported it: `FROM_BROWSER=brave` fell back to Firefox/Safari and `FROM_BROWSER=auto` never tried Brave. The env wiring now passes Brave - and the rest of the Chromium family - through to the extractor ([#572](https://github.com/mvanhorn/last30days-skill/pull/572)). +- Chromium cookie extraction now fetches the macOS Keychain key lazily - only when an encrypted cookie actually needs decrypting. Previously the key was fetched as soon as the cookie DB existed, so `FROM_BROWSER=auto` could trigger a Keychain prompt for every installed Chromium browser. Now only the browser that actually holds the requested cookie prompts ([#572](https://github.com/mvanhorn/last30days-skill/pull/572)). +- YouTube transcript budget prioritises recent videos (by a combination of views and recency) instead of views alone, preventing transcript slots from being consumed by old high-view-count videos that would be discarded by strict_recent freshness pruning ([#531](https://github.com/mvanhorn/last30days-skill/issues/531)) +- YouTube items with successfully extracted transcripts are no longer pruned by title-only relevance scoring; the transcript content proves substantive topical coverage even when the video title has low lexical overlap with the query ([#468](https://github.com/mvanhorn/last30days-skill/issues/468)) +- First-run setup wizard in SKILL.md now references the existing Python setup wizard (`last30days.py setup`) instead of the missing `nux-wizard.md` file, so first-run setup actually runs on new installs. ([#574](https://github.com/mvanhorn/last30days-skill/issues/574)) +- `check-config.sh` no longer exits 1 on the ScrapeCreators-configured path when no prior run exists (empty `LAST_RUN_LINE`) — swapped `&&` guard for an `if` block that always exits cleanly ([#463](https://github.com/mvanhorn/last30days-skill/issues/463)) +- `check-config.sh` no longer exits 1 when a `.env` value contains an unbalanced quote — replaced `xargs` (which interprets quotes) with `sed` for whitespace trimming in `load_env_vars` ([#506](https://github.com/mvanhorn/last30days-skill/issues/506)) +- X/Twitter `.env` template now includes `CT0` alongside `AUTH_TOKEN` in the example skeleton ([CONFIGURATION.md](CONFIGURATION.md)), and the just-in-time unlock wizard offers AUTH_TOKEN/CT0 cookie entry ([#396](https://github.com/mvanhorn/last30days-skill/issues/396)) +- `check-config.sh` no longer counts X as an active source when only `AUTH_TOKEN` is set without `CT0` — both cookies are now required to credit X in the source count ([#396](https://github.com/mvanhorn/last30days-skill/issues/396)) +- Firefox cookie extraction now falls back to scanning non-default profiles when the default profile has no matching X cookies, fixing multi-profile setups where login lives on a non-default profile ([#498](https://github.com/mvanhorn/last30days-skill/issues/498)) +- `subproc.py` `run_with_timeout()` now guards `os.killpg` / `os.getpgid` with `hasattr`, preventing an uncaught `AttributeError` crash when a subprocess times out on Windows where these functions don't exist ([#527](https://github.com/mvanhorn/last30days-skill/issues/527)) +- Entity-grounding rerank demotion now keys on the head token of the primary entity instead of requiring the full multi-word phrase as a contiguous substring. A high-engagement on-entity item (e.g. a 323-pt HN thread titled "Stripe is friendly to 'friendly fraud'") is no longer demoted to score 0 on a `Stripe payments` query just because it lacks the trailing search-hint word. The intended demotion still fires for items that never name the brand at all. The keyless Reddit comment-enrichment slot selection (`_slot_priority`), which mirrors this signal, was updated to the same head-token grounding so the two paths stay consistent. +- `--plan` / `--competitors-plan` file reads now specify `encoding="utf-8"` and catch `UnicodeDecodeError`, preventing crashes on non-ASCII content like accented entity names on Windows (cp1252). `check_perms()` in `check-config.sh` now skips the POSIX 600-permission check on MSYS/MinGW/Cygwin where `stat` runs in noacl mode. `skill_meta.py` `read_skill_version()` now passes `encoding="utf-8"` so SKILL.md emoji doesn't break version detection on Windows. ([#549](https://github.com/mvanhorn/last30days-skill/issues/549)) + + +## [3.3.2] - 2026-06-06 + +### Fixed + +- YouTube transcript extraction now falls back through `en,es,pt` (configurable via `LAST30DAYS_YT_SUB_LANGS`) instead of English-only, so non-English videos with auto-captions in any of those three languages now contribute transcripts to the brief ([#469](https://github.com/mvanhorn/last30days-skill/issues/469)) +- Keyless Reddit comment enrichment now spends its limited slots on entity-matching posts first (mirroring rerank's entity-miss demotion signal) instead of raw upvote order, so off-topic high-upvote threads from broad subreddits no longer consume the comment budget only to be demoted afterward ([#484](https://github.com/mvanhorn/last30days-skill/pull/484)) + +## [3.3.1] - 2026-05-30 + +### Fixed + +- Removed the redundant `commands/last30days.md` wrapper so the plugin exposes only the skill ([#461](https://github.com/mvanhorn/last30days-skill/issues/461)). Previously the plugin shipped both a command wrapper and the skill under the same name, so `/last30` surfaced two `last30days` entries with two different descriptions. The skill already carries its own `argument-hint`, so the `/last30days ` picker UX is unchanged. +- Corrected the README install note that claimed Claude Code dedupes the slash command across install methods; it does not, so having both the marketplace plugin and the `npx skills` copy active shows two entries. + +## [3.3.0] - 2026-05-17 + +A week-long shipping cycle: ~75 PRs merged plus 7 community fixes salvaged through PR triage. Big themes: install story modernized for the multi-harness world (Claude Code, Codex, Cursor, Gemini CLI, Copilot, Windsurf, and 50+ Agent Skills hosts), new emit and source modes, and a substantial reliability sweep across Reddit, X, Windows, YouTube, and the planner. + +### Added + +**Emit modes and sources** + +- `--emit=html` for shareable, print-friendly HTML research briefs ([#332](https://github.com/mvanhorn/last30days-skill/pull/332)). +- **Digg AI 1000 source**, auto-enabled when `digg-pp-cli` is on PATH ([#370](https://github.com/mvanhorn/last30days-skill/pull/370)). Surfaces curated story clusters from the AI 1000 leaderboard and pulls attributable X-post quotes into the brief. + +**Configuration knobs** + +- `EXCLUDE_SOURCES` env var — the inverse of `INCLUDE_SOURCES`, honored in source count and pipeline filter ([#399](https://github.com/mvanhorn/last30days-skill/pull/399)). +- `LAST30DAYS_YOUTUBE_SSH_HOST` — opt-in SSH routing for `yt-dlp` through a residential-IP host, for users on datacenter VPS hit by YouTube's bot-wall ([#376](https://github.com/mvanhorn/last30days-skill/pull/376)). Host validated against `^[a-zA-Z0-9._-]+$` to reject SSH option-injection. Transcript path unchanged (uses HTTP fallback). +- macOS Keychain as a credential source — reads from the system keychain when env vars and config files aren't set ([#407](https://github.com/mvanhorn/last30days-skill/pull/407)). +- Configuration enablement: env-var defaults and source-resilience patterns across the config layer ([#344](https://github.com/mvanhorn/last30days-skill/pull/344)). + +**Pipeline and storage** + +- Reddit URL auto-enrichment from web search via the public JSON API ([#366](https://github.com/mvanhorn/last30days-skill/pull/366)). +- Per-run finding sightings recorded in the SQLite store ([#373](https://github.com/mvanhorn/last30days-skill/pull/373)). +- Brave browser support for X/Twitter cookie extraction ([#320](https://github.com/mvanhorn/last30days-skill/pull/320)). + +**Tests and CI** + +- Full pytest suite restored to CI; 13 rotted tests repaired ([#416](https://github.com/mvanhorn/last30days-skill/pull/416)). +- `greptile.json` added with `triggerOnUpdates` + `statusCheck` ([#418](https://github.com/mvanhorn/last30days-skill/pull/418)). +- Advisory security workflow ([#368](https://github.com/mvanhorn/last30days-skill/pull/368)). +- Parallel grounding backend test coverage ([#355](https://github.com/mvanhorn/last30days-skill/pull/355)). + +**Docs** + +- New `CONFIGURATION.md` with README pointers ([#339](https://github.com/mvanhorn/last30days-skill/pull/339)). +- `docs/solutions/` learning capture for release-time consistency-test cascades ([#413](https://github.com/mvanhorn/last30days-skill/pull/413)) and the eval-not-in-CI design decision ([#417](https://github.com/mvanhorn/last30days-skill/pull/417)). + +### Changed + +**Install story modernized** + +- `npx skills add` is now the canonical install path for every harness ([#405](https://github.com/mvanhorn/last30days-skill/pull/405)). README and SKILL.md flipped to recommend `npx skills add . -g -y` over per-harness manual instructions. Surfaces Gemini CLI, Copilot, Windsurf, and 50+ other Agent Skills hosts that the install pattern reaches. +- README dropped the Gemini CLI native-extension install path (now covered by `npx skills add`). +- `hooks.json` made polyglot for Gemini CLI + Claude Code compatibility ([#318](https://github.com/mvanhorn/last30days-skill/pull/318)). + +**Skill semantics and multi-harness reframe** + +- `AGENTS.md` is now canonical; `CLAUDE.md` points at it ([#410](https://github.com/mvanhorn/last30days-skill/pull/410)). Reframes the project as a multi-harness Agent Skills package rather than a Claude-Code-specific tool. +- SKILL.md path resolution rewritten: STEP 0 narrows to a Claude-Code-marketplaces-only stale-clone guard; Step 1 walks a single `SKILL_DIR` substitution pattern ([#400](https://github.com/mvanhorn/last30days-skill/pull/400), [#409](https://github.com/mvanhorn/last30days-skill/pull/409)). Removes ~80 lines of bash and fixes a real spec-vs-engine divergence where the previous resolver could pick a different install than the SKILL.md the model loaded from. +- SKILL.md version regex consolidated into `lib/skill_meta.py` ([#412](https://github.com/mvanhorn/last30days-skill/pull/412)). +- `--plan` / `--competitors-plan` invocation templates switched from inline single-quoted JSON to heredoc-written tmpfiles ([#404](https://github.com/mvanhorn/last30days-skill/pull/404), fixes [#403](https://github.com/mvanhorn/last30days-skill/issues/403)). Apostrophes in resolved context strings ("McDonald's", "people's choice") no longer break shell parsing. +- `POSTS_PER_CLUSTER` raised 3→5 and render-side display limit 2→3 to match the per-source enrichment caps used by Reddit, HN, YouTube, TikTok, and GitHub. The previous caps routinely truncated cluster context. +- Digg AI 1000 renamed to "Digg" in user-facing output ([#372](https://github.com/mvanhorn/last30days-skill/pull/372)) — footer line, source label, inline-quote suffix, why_relevant, container attribution. Internal references retain the upstream product name. +- GitHub repo resolution canonicalized for ambiguous product comparisons ([#302](https://github.com/mvanhorn/last30days-skill/pull/302)). + +**Dependencies and tooling** + +- Dropped `requests` runtime dependency. All providers route through stdlib `urllib` via the `lib/http` wrapper ([#393](https://github.com/mvanhorn/last30days-skill/pull/393)). +- Migrated to `gemini-3.1-flash-lite` GA model ([#378](https://github.com/mvanhorn/last30days-skill/pull/378)). +- Aligned Codex/Claude plugin manifests + added Codex `AGENTS.md` ([#321](https://github.com/mvanhorn/last30days-skill/pull/321)). +- pytest dev dep bumped 9.0.2 → 9.0.3 ([#414](https://github.com/mvanhorn/last30days-skill/pull/414)). + +### Removed + +- **BREAKING for Codex native-plugin users:** `.codex-plugin/plugin.json` and the matching SKILL_ROOT resolver branch in SKILL.md Step 1 ([#400](https://github.com/mvanhorn/last30days-skill/pull/400)). Codex users should install via `npx skills add mvanhorn/last30days-skill` or copy the skill to `~/.codex/skills/last30days/`. +- **`skills/last30days/scripts/sync.sh`** — maintainer dev-deploy script ([#405](https://github.com/mvanhorn/last30days-skill/pull/405)). Replaced by `npx skills add . -g -y` (live-symlink into every detected harness's skill dir — better than sync.sh's copy model since edits propagate live). Hermes uses `hermes skills install mvanhorn/last30days-skill --force`; OpenClaw uses `clawhub install last30days-official`. +- Orphaned `SPEC.md` and `TASKS.md` ([#419](https://github.com/mvanhorn/last30days-skill/pull/419)). + +### Fixed + +**Reddit** + +- `lstrip("r/")` mangled subreddits starting with `r` (`r/robotics` → `obotics`, `r/ruby` → `uby`); replaced with `removeprefix("r/")` at 4 sites (Alex Key, salvaged from #288). +- Browser-like User-Agent + `Accept-Language`/`Accept-Encoding`/`Connection` headers + gzip decompression to fix `urllib` 403s on Reddit's public JSON endpoint (Franco Carballar, salvaged from #199). +- HTTP 402 re-raised across all three ScrapeCreators paths (`_global_search`, `_subreddit_search`, `fetch_post_comments`) so the OpenAI/public-JSON fallback chain triggers when credits are exhausted (Jonathan Oppenheim, salvaged from #170). + +**Authentication and credentials** + +- Restored multi-key rotation for `SCRAPECREATORS_API_KEY` accidentally dropped in v3.0.6 (Eric Oberhofer, salvaged from #287). Comma-separated keys round-robin via `random.choice` per run. + +**Windows compatibility** + +- `os.killpg` in `_cleanup_children()` guarded with `hasattr(os, "killpg")`, falls back to `os.kill(SIGTERM)` (gujishh, salvaged from #226). +- POSIX-style secret-permission warning skipped on Windows ([#357](https://github.com/mvanhorn/last30days-skill/pull/357)). +- Render uses forward slashes in save-path footer for Windows ([#338](https://github.com/mvanhorn/last30days-skill/pull/338)). + +**xAI / X / xurl** + +- `parse_x_response` now raises `http.HTTPError` on empty output, missing JSON, or decode failure — surfaces in `errors_by_source` instead of silently returning an empty result list (Kaustav Mishra, salvaged from #155). +- `xurl` treats `PermissionError` from PATH lookup as unavailable ([#322](https://github.com/mvanhorn/last30days-skill/pull/322)). + +**YouTube** + +- SC YouTube + multi-token HN searches unblocked ([#388](https://github.com/mvanhorn/last30days-skill/pull/388)). +- Transcript-fetch ratio surfaced + degraded-run nudge for stale `yt-dlp` ([#340](https://github.com/mvanhorn/last30days-skill/pull/340)). + +**bird_x / HTTP** + +- Subprocess retry on non-JSON stdout to handle X anti-bot HTML interstitials ([#383](https://github.com/mvanhorn/last30days-skill/pull/383)). +- HTTP retry budget expanded + exponential backoff on DNS resolution failure ([#382](https://github.com/mvanhorn/last30days-skill/pull/382)). +- Parallel AI search aligned with current API schema ([#341](https://github.com/mvanhorn/last30days-skill/pull/341)). +- Parallel web backend routed through grounding ([#354](https://github.com/mvanhorn/last30days-skill/pull/354)). + +**Planner and sources** + +- `xquik` registered in `SOURCE_CAPABILITIES` ([#336](https://github.com/mvanhorn/last30days-skill/pull/336), fixes [#319](https://github.com/mvanhorn/last30days-skill/issues/319)). +- Honor explicit optional source requests ([#356](https://github.com/mvanhorn/last30days-skill/pull/356)). +- ScrapeCreators source-gating aligned between code and docs ([#415](https://github.com/mvanhorn/last30days-skill/pull/415)). +- OpenClaw works without ScrapeCreators key ([#392](https://github.com/mvanhorn/last30days-skill/pull/392), by @thinkun). + +**Render, version display, hosting paths** + +- Hardcoded `v3.0.0` in render replaced with dynamic `_skill_version()` ([#365](https://github.com/mvanhorn/last30days-skill/pull/365)). +- Comparison HTML artifacts saved correctly ([#389](https://github.com/mvanhorn/last30days-skill/pull/389)). +- `OPENROUTER_DEFAULT` model ID corrected ([#323](https://github.com/mvanhorn/last30days-skill/pull/323)). +- OpenClaw poll-timing initialized once ([#358](https://github.com/mvanhorn/last30days-skill/pull/358)). +- Prefer sandboxed Safari cookie path ([#343](https://github.com/mvanhorn/last30days-skill/pull/343)). +- Preserve clean mode for last-run state ([#334](https://github.com/mvanhorn/last30days-skill/pull/334)). +- Replaced hardcoded `/Users/mvanhorn/...` paths in `test-v1-vs-v2.sh` with portable env-var overrides (Dave Morin, salvaged from #297). + +**Hooks** + +- `check-config.sh` path-quoting fix for paths with spaces ([#337](https://github.com/mvanhorn/last30days-skill/pull/337)). +- Replaced unsafe `eval` with `declare` in `check-config.sh` ([#364](https://github.com/mvanhorn/last30days-skill/pull/364)). + +**Sync and version metadata** + +- `sync.sh` pointed at this repo's plugin cache, not the private repo's ([#402](https://github.com/mvanhorn/last30days-skill/pull/402)). +- Sync cache target bumped to 3.2.1 to match SKILL.md ([#397](https://github.com/mvanhorn/last30days-skill/pull/397)). +- ScrapeCreators free-tier credit count corrected to 100 in docs ([#369](https://github.com/mvanhorn/last30days-skill/pull/369), fixes [#367](https://github.com/mvanhorn/last30days-skill/issues/367)). +- Gemini extension version synced ([#349](https://github.com/mvanhorn/last30days-skill/pull/349)). +- Various stale path/link fixes ([#345](https://github.com/mvanhorn/last30days-skill/pull/345), [#346](https://github.com/mvanhorn/last30days-skill/pull/346), [#347](https://github.com/mvanhorn/last30days-skill/pull/347), [#348](https://github.com/mvanhorn/last30days-skill/pull/348), [#351](https://github.com/mvanhorn/last30days-skill/pull/351)). + +### Contributors + +First-time contributors whose fixes shipped in this release (most via PR triage salvage — fix re-applied directly to main with co-author credit when path migration made the original branch un-rebaseable): + +- Dave Morin — portable test-harness paths +- Alex Key — `removeprefix("r/")` for subreddit names +- Eric Oberhofer — multi-key rotation restored +- gujishh — Windows process cleanup +- Franco Carballar — Reddit browser-like headers +- Jonathan Oppenheim — Reddit 402 fallback chain +- Kaustav Mishra — xAI error surfacing +- [@thinkun](https://github.com/thinkun) ([#363](https://github.com/mvanhorn/last30days-skill/pull/363)) — OpenClaw ScrapeCreators-key-optional fix + +Full PR list at [github.com/mvanhorn/last30days-skill/releases/tag/v3.3.0](https://github.com/mvanhorn/last30days-skill/releases/tag/v3.3.0). + +## [3.2.0] - 2026-05-09 + +### Added + +- Add `--emit=html` for shareable, print-friendly HTML research briefs. +- **Digg AI 1000 source** (auto-enabled when `digg-pp-cli` is on PATH). Surfaces curated story clusters from the AI 1000 leaderboard and pulls attributable X-post quotes into the brief as `[@handle](xUrl) via Digg AI 1000: ...` lines. Footer line: `⛏️ Digg AI 1000: N clusters │ K posts │ M authors`. No X auth required for the inline quotes since they flow through Digg's read-only endpoints. + +## [3.1.1] - 2026-04-24 + +### Fixed + +- **Codex plugin layout.** Move the canonical runtime payload under `skills/last30days/` and update Codex/Claude plugin metadata and tests for the relocated engine path. +- **Claude Code cache resolution.** Resolve Claude plugin installs to `skills/last30days/scripts/last30days.py` after the plugin-layout restructure. + +## [3.1.0] - 2026-04-22 + +Consolidates the 3.0.10 to 3.0.14 dev cycle (commenter handles, `--competitors`, per-entity Step 0.55, vs-mode N passes, comparison title attribution) and republishes the OpenClaw bundle, which had been frozen on ClawHub at `3.0.0-open` since April 8. + +### Added + +- **OpenClaw republish.** `clawhub install last30days-official` now resolves to `3.1.0-open`, matching current main. Closes [#307](https://github.com/mvanhorn/last30days-skill/issues/307), [#195](https://github.com/mvanhorn/last30days-skill/issues/195), [#236](https://github.com/mvanhorn/last30days-skill/issues/236). The ClawHub bundle had shipped a broken `env.py get_config()` and stale SKILL.md path references since April; both are fixed at source on main and the republish carries the fixes to installers. + +### Fixed + +- **Claude Code plugin manifest path-escape.** The `.claude-plugin/plugin.json` `skills` key was removed in commit `93fbed2` but never shipped in a tagged release. Installing via `/plugin install last30days-skill` could hit `/doctor`'s `Path escapes plugin directory: ./ (skills)` error. This release ships the fix. Closes [#306](https://github.com/mvanhorn/last30days-skill/issues/306). +- **Broken README link.** The README's "source of truth" link pointed at root `SKILL.md`, which is no longer maintained after the plugin-layout restructure. Fixed to point at `skills/last30days/SKILL.md`. + +### Dev cycle journal (3.0.10 - 3.0.14, not separately tagged) + +Individual changelog entries for 3.0.10 through 3.0.14 below document the incremental work consolidated into this release. + +## [3.0.14] - 2026-04-22 + +### Changed + +- **Comparison-mode title attribution.** The synthesis title for vs-mode and `--competitors` outputs changes from `What the Community Says (Last 30 Days)` to `What the Community Says (/Last30Days)`. Surfaces the slash-command identity instead of restating the date range. Three SKILL.md occurrences updated; pure documentation change. + +## [3.0.13] - 2026-04-22 + +### Changed + +- **vs mode runs N full passes in parallel, one per entity.** Architectural revert of the 3-pass → 1-pass latency optimization from an earlier version. `/last30days "OpenAI vs Anthropic vs xAI"` now runs three full `pipeline.run()` calls in parallel via the same fanout `--competitors` uses, producing three `*-raw.md` save files plus a merged comparison output. Each entity gets its own Step 0.55-grade targeting, own primary X handle weight, own subreddit scoping — apples-to-apples depth instead of the one-pool merged retrieval the single-pass path produced. Parallel execution keeps wall clock ≈ single pass. +- **`--competitors` is now a SKILL.md-level shortcut for vs-mode with auto-discovery.** The hosting reasoning model (Claude Code, Codex, Hermes, Gemini, any agent with WebSearch) performs discovery and Step 0.55 per entity via its own WebSearch tool, then invokes the engine with a vs-topic and `--competitors-plan` JSON. The engine flag remains for headless/cron use with BRAVE/EXA/SERPER/PARALLEL/OPENROUTER keys (engine-internal `auto_resolve` stays as fallback). +- **LAW 7-style stderr for `--competitors` with no backend** now leads with the hosting-model path (WebSearch + Step 0.55 + `--competitors-plan`) instead of `BRAVE_API_KEY`. API-key framing moved to a secondary "headless" section. + +### Added + +- **`--competitors-plan` JSON flag** for per-entity Step 0.55 targeting. Schema: `{entity_name: {x_handle?, x_related?, subreddits?, github_user?, github_repos?, context?}}`. Accepts inline JSON or a file path (matches `--plan`). When present for an entity, skips engine-internal `auto_resolve` and uses the provided values; missing fields fall back to `auto_resolve` (if backend) or planner defaults. Case-insensitive entity matching. The `subrun_kwargs_for` helper is the single source of truth for per-entity kwargs — no closure-default fallthrough from main scope. +- **Per-entity save files** when `--save-dir` is set on a vs-mode or `--competitors` run. Each entity's sub-run produces its own `{slug}-raw.md` with a single-row Resolved Entities block — matches historical vs-mode behavior (N passes → N save files). +- **`--polymarket-keywords "kw1,kw2"`** to filter Polymarket matches for ambiguous single-token topics (e.g., "Warriors" → `nba,gsw,golden-state` kills Glasgow Warriors rugby and Honor of Kings Rogue Warriors noise). + +### Fixed + +- **BRAVE/SERPER footer nudge suppressed** when `--plan` or `--competitors-plan` is present. The nudge told Claude Code users to set an API key when they already have WebSearch via the hosting model. Nudge still fires for true headless runs (no `--plan`, no backend) where the advice is correct. +- **Override-leak regression testing.** 3.0.12 already fixed the main-topic `--subreddits` / `--x-handle` / `--github-*` from leaking into peer sub-runs via explicit per-entity kwargs scrubbing. This release adds a 4-test regression suite (`test_competitor_subrun_isolation.py`) locking in the invariant. + +## [3.0.12] - 2026-04-22 + +### Fixed + +- **Per-entity Step 0.55 resolution for competitor sub-runs.** In 3.0.11, only the main topic got X handle / subreddit / GitHub resolution; competitor sub-runs ran with planner defaults and produced visibly thinner evidence (Reddit 403 fallbacks, single-word queries). Each competitor sub-run now calls `resolve.auto_resolve()` inside `fanout.run_competitor_fanout` when a web backend is available, mirroring the main topic's pre-flight resolution. Per-entity X handle, subreddit list, GitHub user/repos, and news context are threaded into each sub-run's `pipeline.run()` call. Deep-copied config per sub-run prevents `_auto_resolve_context` cross-leak. Surfaces in a new `## Resolved Entities` output block so the resolution coverage is visible without reading stderr. +- **LAW 7 false-positive on internal fan-out sub-runs.** Each competitor sub-run was emitting the `[Planner] No --plan passed... YOU ARE the planner` stderr warning. LAW 7 targets the hosting-reasoning-model path, not engine-internal fan-out. New `internal_subrun=True` keyword on `planner.plan_query` and `pipeline.run` suppresses the warning for sub-runs only; the default path is unchanged. +- **Marketplace-stale SKILL.md trap.** Added a STEP 0 canonical-path self-check at the top of SKILL.md. Two of three 2026-04-22 test runs loaded SKILL.md from `plugins/marketplaces/last30days-skill/` (Claude-Code-managed git clone pinned to origin/main, lagging the versioned cache), then ran `--help` against the same stale path, did not see `--competitors`, and fell back to a manual comparison plan. The STEP 0 block forces any reader to verify they loaded from `plugins/cache/last30days-skill/last30days/{VERSION}/SKILL.md` and re-read from the versioned cache if not. + +### Changed + +- **Default `--competitors` count is now 2 (3-way total: original + 2 peers).** Previously 3. `--competitors=N` still customizes (range 1..6). Matches the feature description's canonical example (`Kanye vs Drake vs Kendrick`). + +### Added + +- **`## Resolved Entities` block** in `render_comparison_multi` output. Shows per-entity X handle, subreddits, GitHub user/repos, and truncated context for every entity in the comparison. Block is omitted entirely when no entity has a resolved payload (mock mode, no backend). + +## [3.0.11] - 2026-04-22 + +### Added + +- **`--competitors` flag for auto-discovered comparison fan-out.** Pass `--competitors` on a single-entity topic and the engine discovers 2-6 peer entities via web search, then runs the full pipeline on each in parallel and emits one N-way comparison. `last30days Kanye West --competitors` resolves Drake, Kendrick Lamar, and one more peer. `last30days OpenAI --competitors` resolves Anthropic, xAI, Google Gemini. `--competitors=N` controls count, `--competitors-list="A,B,C"` skips discovery and uses the explicit list. Discovery mirrors the `auto_resolve` pattern (Brave / Exa / Serper / Parallel) with deterministic text extraction - no internal LLM call. Sub-runs inherit the main `--quick`/`--deep`/`--days`, run in a `ThreadPoolExecutor`, and degrade gracefully when at least 2 entities survive. Output reuses the existing 9-axis `## Head-to-Head` scaffold. + +## [3.0.10] - 2026-04-21 + +### Added + +- **Commenter handles on evidence lines.** Top-comment rendering now includes the commenter's handle - `u/author` for Reddit, `@handle` for TikTok/YouTube/Instagram/Bluesky/X/Threads. The enrichment adapters already captured `author`; the render layer just was not using it. Evidence lines change from `- Comment (6822 upvotes): Finally, John Apple` to `- u/Cyrisaurus (6822 upvotes): Finally, John Apple`. Person-level citations make synthesis-side inline markdown links per LAW 8 much more natural. Both the compact and full render paths are covered. + +### Fixed + +- **TikTok author preference.** `_fetch_post_comments` in `scripts/lib/tiktok.py` preferred `user.nickname` over `user.unique_id`, so the engine captured display names ("Moosa Noormahomed") instead of @handles ("moosanoormahomed"). Flipped to prefer `unique_id`. Nickname still wins as a fallback when `unique_id` is missing. Display names can contain emoji, spaces, and non-Latin characters that do not round-trip to a profile URL; the @handle is the stable identifier. +- **Single plugin payload layout.** The canonical runtime moved to `skills/last30days/` for both Claude Code and Codex plugin loading. Root-level `SKILL.md`, `scripts/`, `agents/`, and `assets/` are no longer maintained as duplicate copies. + +### Behavior fallback + +- When an author is empty, `[deleted]`, or `[removed]`, the render falls back to the legacy `Comment (...)` shape - no `u/` or `@` prefix with an empty handle is ever emitted. + +## [3.0.9] - 2026-04-18 - The Self-Debug Release + +### Highlights + +v3.0.9 adds the engine-side Class 1 keyword-trap refuse-gate ("birthday gift for 40 year old" now gets a clarifying question, not 5 minutes of junk), promotes TikTok and YouTube top comments to the same first-class rendering Reddit's got, lands Hermes AI Agent as a first-class deploy target, and moves the SKILL.md formatting contract from line 1094 to the top of the file. + +"The Self-Debug Release" refers to how the fixes in 3.0.6-3.0.9 were written: 5 separate Opus 4.7 instances each debugged their own failed outputs. Three converged on "SKILL.md is too big and the LAWs are too deep." Two converged on "the engine should refuse demographic-shopping queries." I shipped exactly what they said. Validation: 5/5 canonical compliance. + +### Added + +- **Engine Class 1 keyword-trap refuse-gate** (`scripts/lib/preflight.py`, new). Pattern-matches demographic-shopping queries at main() front-door. Exit code 2 with structured REFUSE message. Escape hatch: `LAST30DAYS_SKIP_PREFLIGHT=1`. 29 tests in `tests/test_preflight.py`. +- **TikTok + YouTube top comments** rendered with same `💬 Top comment` prominence as Reddit's. Shipped in [#260](https://github.com/mvanhorn/last30days-skill/pull/260); enrichment fixed in [#265](https://github.com/mvanhorn/last30days-skill/pull/265). +- **Hermes AI Agent as a deploy target** - thanks @stephenmcconnachie ([#228](https://github.com/mvanhorn/last30days-skill/pull/228)). `scripts/sync.sh` detects `~/.hermes/skills/research` and deploys automatically. +- **Multi-key SCRAPECREATORS_API_KEY rotation** - thanks @zaydiscold ([#268](https://github.com/mvanhorn/last30days-skill/pull/268)). Set `SCRAPECREATORS_API_KEY_1`, `_2`, etc. Engine rotates on rate-limit. +- **Offline quality evaluation fixture** - thanks @j-sperling ([#233](https://github.com/mvanhorn/last30days-skill/pull/233)). `eval_topics.json` lets contributors run quality regressions without burning live API credits. +- **END-OF-CANONICAL-OUTPUT boundary** in `render_compact()`. Engine now emits an explicit pass-through instruction so re-synthesis requires actively ignoring a visible boundary. +- **LAW 1 verbatim-pattern override.** LAW 1 now quotes the exact WebSearch tool-result reminder ("CRITICAL REQUIREMENT: MUST include Sources: section") and declares it OVERRIDDEN inside last30days output. + +### Changed + +- **SKILL.md restructure.** VOICE CONTRACT LAWs and BADGE MANDATORY block moved from line 1094 to lines 75-150. Grounded in 3 separate Opus 4.7 self-debugs. +- **Engine emits the badge as stdout.** `🌐 last30days v3.0.9 · synced YYYY-MM-DD` is the first line of every compact emit. Pass-through is now the default-correct behavior. +- **Reddit client HTTP consolidation** - thanks @iliaal ([#207](https://github.com/mvanhorn/last30days-skill/pull/207)). Migrated to `http.get(params=...)` helper. +- **ScrapeCreators header consolidation** - thanks @iliaal ([#209](https://github.com/mvanhorn/last30days-skill/pull/209)). `_sc_headers` refactored into `http.scrapecreators_headers`. +- **Simpler Hermes sync.** `scripts/sync.sh` Hermes branch now always uses main SKILL.md (previously had a `.hermes-plugin/SKILL.md` fallback that created a wrong-file-capture hazard). + +### Fixed + +- **Peter Steinberger trailing Sources leak.** 2026-04-18 validation failure where the model appended a TechCrunch / TED / Fortune / Wikipedia Sources list after the invitation. Now structurally prevented at three layers: engine emits the canonical body, LAW 1 quotes the exact WebSearch reminder, closing boundary names the anti-pattern. +- **Wrong-file SKILL.md capture.** Deleted `.agents/skills/last30days/SKILL.md` (1382 lines, April 13 snapshot) and `.hermes-plugin/SKILL.md` (269 lines). One SKILL.md per plugin now, at the plugin root. +- **GitHub date parsing garbage** - thanks @iliaal ([#208](https://github.com/mvanhorn/last30days-skill/pull/208)). `_parse_date` now rejects invalid input cleanly. +- **Windows Bird X stability** - thanks @Chelebii ([#227](https://github.com/mvanhorn/last30days-skill/pull/227)). +- **Linux `check_perms` false-warn** - thanks @george231224 ([#216](https://github.com/mvanhorn/last30days-skill/pull/216)). Uses GNU stat first. +- **UTF-8 saved output** - thanks @Gujiassh ([#225](https://github.com/mvanhorn/last30days-skill/pull/225)). +- **Version metadata alignment** - thanks @Gujiassh ([#217](https://github.com/mvanhorn/last30days-skill/pull/217)) and @shalomma ([#229](https://github.com/mvanhorn/last30days-skill/pull/229)). +- **`--days` alias backcompat** - thanks @BryanTegomoh ([#230](https://github.com/mvanhorn/last30days-skill/pull/230)). +- **`INCLUDE_SOURCES` env default** - thanks @hnshah ([#223](https://github.com/mvanhorn/last30days-skill/pull/223)). +- **Bird X all-None engagement** - thanks @j-sperling ([#234](https://github.com/mvanhorn/last30days-skill/pull/234)). + +### Contributors + +@j-sperling, @stephenmcconnachie, @zaydiscold, @iliaal, @Chelebii, @Gujiassh, @hnshah, @george231224, @shalomma, @BryanTegomoh for PRs since v3.0.0. @uppinote20, @zerone0x, @thinkun, @thomasmktong, @fanispoulinakisai-boop, @pejmanjohn, @zl190, @Jah-yee, @dannyshmueli, @Cody-Coyote for issues and PRs that shaped the v3 roadmap. + +### Recovery + +``` +/plugin update last30days +/reload-plugins +``` + +Verify: `cat ~/.claude/plugins/cache/last30days-skill/last30days/*/.claude-plugin/plugin.json | grep version` returns `"version": "3.0.9"`. + +Smoke test: `/last30days birthday gift for 40 year old` should ask a clarifying question before running. + +## [3.0.5] - 2026-04-15 + +### Added + +- **`/last30days` slash command for plugin users.** New `commands/last30days.md` registers a Claude Code slash command. Users type `/last30days ` and Claude Code's autocomplete prefix-matches it to the canonical `/last30days:last30days` form (the same way `/ce:plan` resolves to `/compound-engineering:ce-plan`). The command delegates to the existing `last30days` skill body — no skill behavior changes. + +### Removed + +- **`skills/last30days-nux/`** — byte-identical duplicate of root `SKILL.md` that created confusing `/last30days:last30days-nux` autocomplete entries via Claude Code's plugin namespacing. The root `SKILL.md` remains the canonical skill source. + +### Recovery + +``` +/plugin update last30days +/reload-plugins +``` + +Then type `/last30days ` to invoke the skill via slash command. Natural-language invocation ("search the last 30 days for X") continues to work unchanged. + +## [3.0.4] - 2026-04-15 + +### Fixed + +- **Cleared `/doctor` path-escape error on Claude Code v2.1.109+.** `.claude-plugin/plugin.json` previously declared `"skills": ["./"]`. That value shipped unchanged from v2.1.0 through v3.0.3 and worked on older Claude Code, but current versions reject `./` with `Path escapes plugin directory: ./ (skills)`. The `"skills"` key is now omitted entirely, matching the pattern used by every other plugin in the Claude Code marketplace ecosystem. Claude Code auto-discovers `skills/*/SKILL.md` when the key is absent. + +### Recovery + +If `/doctor` reports a path-escape error for last30days, run `/plugin update last30days` then `/reload-plugins`. If errors persist, uninstall and reinstall the plugin. + +## [3.0.3] - 2026-04-15 + +### Fixed + +- **Restored `skills/` and `.claude-plugin/` to the plugin install tarball.** v3.0.1 added `.gitattributes` rules that excluded both directories from `git archive` output to shrink the claude.ai `.skill` bundle. Claude Code's `/plugin install` fetches the same archive, so users installing v3.0.1 or v3.0.2 received a tarball with no plugin manifest and no skill files. `git archive v3.0.0` contained 8 files under those paths; `v3.0.1` and `v3.0.2` contained 0. This release reverts those `.gitattributes` lines. +- **Reverted `plugin.json` `"skills"` field to `["./"]`.** v3.0.2 changed this to `["skills"]` based on a misdiagnosis — the manifest change had no effect because the manifest wasn't in the tarball at all. The historical `["./"]` value shipped in every release from v2.1.0 through v3.0.0 without issues and is restored here. + +### Recovery + +Users on v3.0.1 or v3.0.2: run `/plugin update last30days` then `/reload-plugins`. If autoUpdate is enabled, the next session start will pull v3.0.3 automatically. Users on cached v3.0.0 or earlier installs were unaffected. + +### Notes + +- The claude.ai `.skill` bundle built by `scripts/build-skill.sh` still works — the archive grew from 89 to 97 files, well under the 200-file cap. +- claude.ai-specific exclusions (avoiding duplicate `SKILL.md` files in the bundle) should move into `scripts/build-skill.sh` rather than `.gitattributes` in a future release, since `.gitattributes` cannot distinguish between the two distribution channels. + +## [3.0.2] - 2026-04-15 + +### Fixed + +- **`/last30days` slash command now registers on Claude Code v2.1.105+.** `.claude-plugin/plugin.json` declared `"skills": ["./"]`, which newer Claude Code rejects with `Path escapes plugin directory: ./ (skills)`. The skill silently failed to register, so `/last30days ` returned "Unknown command" even though `/plugin list` showed the plugin as installed. Fix: `"skills": ["skills"]` so the loader scans the real skill subdirectory. +- **Version drift between manifests.** `.claude-plugin/marketplace.json` was pinned to `3.0.0` while `.claude-plugin/plugin.json` advertised `3.0.1`. The `/plugin` resolver used the marketplace version and could install stale cached metadata alongside the correct build. Both manifests now agree on `3.0.2`. + +### Recovery + +If `/last30days` stopped working for you, run `/plugin update last30days` then `/reload-plugins`. If `/doctor` still reports errors, uninstall and reinstall the plugin from the marketplace. + +## [3.0.1] - 2026-04-14 + +### Fixed + +- **Skill upload packaging** - `scripts/build-skill.sh` produces a claude.ai-upload-ready `.skill` file that fits under the 200-file cap. Previously, zipping the repo hit 406 files and the "Upload skill" UI rejected it outright. +- **SKILL.md description length** - trimmed from 228 to 167 chars (Anthropic caps descriptions at 200). + +### Removed + +- Unused root `vendor/` directory (215 files from an accidental commit in PR #48 - the real vendored X client lives at `scripts/lib/vendor/bird-search/`). +- Legacy top-level `plans/` directory (superseded by `docs/plans/`; both plans described work that was already shipped in v3). + +### Added + +- `.gitattributes` with `export-ignore` entries so `git archive` drops tests, docs, fixtures, assets, historical manifests, and internal skill subdirs. Mirrors Anthropic's canonical `package_skill.py` exclusions. +- `scripts/build-skill.sh` - one-command path to produce `dist/last30days.skill` with a single top-level `last30days/` folder, defensive `=200` file check, and dirty-tree refusal. +- `README.md` section documenting the claude.ai skill upload workflow. + +## [3.0.0] - 2026-04-11 + +### Highlights + +Intelligent search, fun judge, cross-source cluster merging, single-pass comparisons, and OpenClaw as a first-class citizen. The v3 engine doesn't just search for your topic -- it figures out *where* to search before the search begins. Engine architecture by @j-sperling. + +### Added + +- **Intelligent pre-research** -- Resolves X handles, subreddits, TikTok hashtags, and YouTube channels via a new Python brain before any API calls fire. Bidirectional: person to company, product to founder. +- **Fun judge / Best Takes** -- Second parallel LLM judge scores humor, cleverness, and virality. Surfaces the best reactions in a dedicated output section. +- **Cross-source cluster merging** -- Entity-based overlap detection merges the same story across Reddit, X, YouTube into one cluster instead of three separate items. +- **Single-pass comparisons** -- "X vs Y" runs one pass with entity-aware subqueries instead of three serial passes. 3 minutes instead of 12+. +- **GitHub as a source** -- Stars, reactions, and comments from repos and issues. +- **OpenClaw first-class citizen** -- Auto-resolve for engine-side pre-research. Device auth for frictionless ScrapeCreators signup. +- **Per-author cap** -- Max 3 items per author prevents single-voice dominance. +- **Entity disambiguation** -- Synthesis trusts resolved handles over keyword matches. +- **Perplexity Sonar Pro as additive source** -- AI-synthesized research with citations via OpenRouter. Opt-in via `INCLUDE_SOURCES=perplexity`. Returns structured narratives that complement social data. +- **Perplexity Deep Research** -- `--deep-research` flag for exhaustive 50+ citation reports (~$0.90/query). Premium opt-in for serious investigation. +- **OpenRouter as reasoning provider** -- One OPENROUTER_API_KEY powers planning, reranking, and Perplexity search. Auto-detected after Gemini/OpenAI/xAI. +- **Parallel AI grounding backend** -- `--web-backend parallel` or auto-detected via PARALLEL_API_KEY. +- **Grounding in planner** -- Grounding source properly registered in SOURCE_CAPABILITIES instead of force-injected. + +### Changed + +- YouTube transcript candidate pool widened 3x past music videos to reach talk/review content with captions +- Reddit comment enrichment sorted by total engagement (upvotes + comments), not just upvotes +- Polymarket display shows % odds only; dollar volumes removed +- 852 tests passing + +### Fixed + +- Marketplace validation: duplicate `name: last30days` collision in `skills/last30days/SKILL.md` caused strict validators to reject the plugin. Resolved by renaming the internal v3 architecture spec to `last30days-v3-spec` with `user-invocable: false`. Fixed in #214 (reported by @Cody-Coyote in #204). +- Stale README link to the deleted `skills/last30days-v3/` path from the v3 directory rename. Fixed in #214. +- OpenAI Codex CLI discoverability: added `.agents/skills/last30days/SKILL.md` as a real file (Codex's loader skips symlinked files) plus `.codex-plugin/plugin.json` as the namespace marker. The skill now registers as `last30days:last30days` when Codex runs in a checkout of the repo. Fixed in #219 (inspired by @Jah-yee in #153 and @dannyshmueli on X). + +### Contributors + +- @j-sperling -- v3 engine architecture, Python pre-research brain +- @hnshah -- Watchlist features +- @Cody-Coyote -- Marketplace validation bug report (#204) +- @Jah-yee -- Codex CLI integration inspiration (#153) + +## [2.9.4] - 2026-03-06 + +### Changed + +- Move save into Python script via `--save-dir` flag - raw research data saved during the existing script Bash call, zero extra tool calls after invitation +- Remove entire "Save Research to Documents" section from SKILL.md (~45 lines removed) +- No more `📎` footer, no Bash heredoc, no `(No output)`, no multi-minute cogitation after research + +## [2.9.3] - 2026-03-06 + +### Fixed + +- **Critical:** Switch save from `run_in_background` to foreground Bash - background callbacks caused model to re-engage, hallucinate fake user messages, and generate unsolicited multi-paragraph responses +- Save uses foreground `cat >` heredoc (executes sub-second, no callback, no delayed notification) + +## [2.9.2] - 2026-03-06 + +### Fixed + +- Save research silently using background Bash heredoc instead of Write tool (eliminates "Wrote N lines..." clutter) +- Suppress follow-up text after background save completes (no more "Research briefing saved..." noise) +- Add `📎` footer line for save path instead of verbose confirmation + +## [2.9.1] - 2026-03-05 + +### Highlights + +Auto-save research briefings to the default memory directory as topic-named .md files. Every run now builds a personal research library automatically - no more manual copy-paste. + +### Added + +- Auto-save complete research briefings (synthesis, stats, follow-up suggestions) to the default memory directory after every run +- Kebab-case filename generation from topic (e.g., "Claude Code skills" -> `claude-code-skills.md`) +- Duplicate topic handling: appends date suffix instead of overwriting (e.g., `claude-code-skills-2026-03-05.md`) +- Agent mode (`--agent`) also saves research files +- Brief confirmation after save with the saved file path + +### Credits + +- [@devin_explores](https://x.com/devin_explores) -- Inspired this feature by sharing their workflow of saving every last30days run into organized .md files ([PR #51](https://github.com/mvanhorn/last30days-skill/pull/51)) + +## [2.9.0] - 2026-03-05 + +### Highlights + +ScrapeCreators Reddit as the default backend (one `SCRAPECREATORS_API_KEY` covers Reddit + TikTok + Instagram), smart subreddit discovery with relevance-weighted scoring, and top comments elevated with 10% scoring weight and prominent display. + +### Added + +- ScrapeCreators Reddit backend (`scripts/lib/reddit.py`) — keyword search, subreddit discovery, comment enrichment, all via `api.scrapecreators.com` +- Smart subreddit discovery with relevance-weighted scoring: frequency × recency × topic-word match, replacing pure frequency count +- `UTILITY_SUBS` blocklist to filter noise subreddits (r/tipofmytongue, r/whatisthisthing, etc.) from discovery results +- Top comment scoring: 10% weight in engagement formula via `log1p(top_comment_score)` +- Top comment rendering: `💬 Top comment` lines with upvote counts in compact and full report output +- Comment excerpt length increased from 300 → 400 chars; `comment_insights` limit raised from 7 → 10 + +### Changed + +- `primaryEnv` switched from `OPENAI_API_KEY` to `SCRAPECREATORS_API_KEY` — one key now powers Reddit, TikTok, and Instagram +- Reddit engagement scoring formula: `0.55/0.40/0.05` (score/comments/ratio) → `0.50/0.35/0.05/0.10` (score/comments/ratio/top-comment) +- SKILL.md synthesis instructions updated to emphasize quoting top comments + +### Fixed + +- Utility subreddit noise in discovery (e.g., r/tipofmytongue appearing for unrelated topics) +- Reddit search no longer requires `OPENAI_API_KEY` — ScrapeCreators API handles search directly + +## [2.8.0] - 2026-03-04 + +### Highlights + +Instagram Reels as the 8th signal source, TikTok migrated from Apify to ScrapeCreators API, and SKILL.md quality improvements. One API key (`SCRAPECREATORS_API_KEY`) now covers both TikTok and Instagram. + +### Added + +- Instagram Reels as 8th research source via ScrapeCreators API — keyword search, engagement metrics (views, likes, comments), spoken-word transcript extraction (`scripts/lib/instagram.py`) +- `InstagramItem` dataclass, normalization, scoring (45% relevance / 25% recency / 30% engagement), deduplication, cross-source linking, and rendering +- Instagram in SKILL.md: stats template (`📸 Instagram:`), citation priority, item format description, output footer +- URL-to-name extraction examples in SKILL.md for cleaner web source display +- `--search=instagram` flag support + +### Changed + +- TikTok backend migrated from Apify to ScrapeCreators API (`api.scrapecreators.com`) +- `APIFY_API_TOKEN` replaced by `SCRAPECREATORS_API_KEY` in config +- SKILL.md version bumped to v2.8 +- WebSearch citation instruction strengthened to prevent trailing Sources: blocks +- Security section updated: Apify → ScrapeCreators references + +### Fixed + +- Web stats line showing full URLs instead of plain domain names +- Trailing "Sources:" block appearing after skill invitation (WebSearch tool mandate conflict) +- Instagram/TikTok not running in web-only mode when `--search=instagram` used without Reddit/X +- `$ARGUMENTS` quoting in SKILL.md for correct flag forwarding + +## [2.1.0] - 2026-02-15 + +### Highlights + +Three headline features: watchlists for always-on bots, YouTube transcripts as a 4th source, and Codex CLI compatibility. Plus bundled X search with no external CLI needed. + +### Added + +- Open-class skill with watchlists, briefings, and history modes (SQLite-backed, FTS5 full-text search, WAL mode) (`feat(open)`) +- YouTube as a 4th research source via yt-dlp -- search, view counts, and auto-generated transcript extraction (`feat: Add YouTube`) +- OpenAI Codex CLI compatibility -- install to `~/.agents/skills/last30days`, invoke with `$last30days` (`feat: Add Codex CLI`) +- Bundled X search -- vendored subset of Bird's Twitter GraphQL client (MIT, originally by @steipete), no external CLI needed (`v2.1: Bundle Bird X search`) +- Native web search backends: Parallel AI, Brave Search, OpenRouter/Perplexity Sonar Pro (`feat(engine)`) +- `--diagnose` flag for checking available sources and authentication status +- `--store` flag for SQLite accumulation (open variant) +- Conversational first-run experience (NUX) with dynamic source status (`feat(nux)`) + +### Changed + +- Smarter query construction -- strips noise words, auto-retries with shorter queries when X returns 0 results +- Two-phase search architecture -- Phase 1 discovers entities (@handles, r/subreddits), Phase 2 drills into them +- Reddit JSON enrichment -- real upvotes, comments, and upvote ratio from reddit.com/.json endpoint +- Engagement-weighted scoring: relevance 45%, recency 25%, engagement 30% (log1p dampening) +- Model auto-selection with 7-day cache and fallback chain (gpt-4.1 -> gpt-4o -> gpt-4o-mini) +- `--days=N` configurable lookback flag (thanks @jonthebeef, [#18](https://github.com/mvanhorn/last30days-skill/pull/18)) +- Model fallback for unverified orgs (thanks @levineam, [#16](https://github.com/mvanhorn/last30days-skill/pull/16)) +- Marketplace plugin support via `.claude-plugin/plugin.json` (inspired by @galligan, [#1](https://github.com/mvanhorn/last30days-skill/pull/1)) + +### Fixed + +- YouTube timeout increased to 90s, Reddit 429 rate limit fail-fast +- YouTube soft date filter -- keeps evergreen content instead of filtering to 0 results +- Eager import crash in `__init__.py` that broke Codex environments +- Reddit future timeout (same pattern as YouTube timeout bug) +- Process cleanup on timeout/kill -- tracks child PIDs for clean shutdown +- Windows Unicode fix for cp1252 emoji crash (thanks @JosephOIbrahim, [#17](https://github.com/mvanhorn/last30days-skill/pull/17)) +- X search returning 0 results on popular topics due to over-specific queries + +### New Contributors + +- @JosephOIbrahim -- Windows Unicode fix ([#17](https://github.com/mvanhorn/last30days-skill/pull/17)) +- @levineam -- Model fallback for unverified orgs ([#16](https://github.com/mvanhorn/last30days-skill/pull/16)) +- @jonthebeef -- `--days=N` configurable lookback ([#18](https://github.com/mvanhorn/last30days-skill/pull/18)) + +### Credits + +- @galligan -- Marketplace plugin inspiration +- @hutchins -- Pushed for YouTube feature + +## [1.0.0] - 2026-01-15 + +Initial public release. Reddit + X search via OpenAI Responses API and xAI API. + +[3.0.9]: https://github.com/mvanhorn/last30days-skill/compare/v3.0.5...v3.0.9 +[2.9.1]: https://github.com/mvanhorn/last30days-skill/compare/v2.9.0...v2.9.1 +[2.9.0]: https://github.com/mvanhorn/last30days-skill/compare/v2.8.0...v2.9.0 +[2.8.0]: https://github.com/mvanhorn/last30days-skill/compare/v2.6.0...v2.8.0 +[2.1.0]: https://github.com/mvanhorn/last30days-skill/compare/v1.0.0...v2.1.0 +[1.0.0]: https://github.com/mvanhorn/last30days-skill/releases/tag/v1.0.0 diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..43c994c --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1 @@ +@AGENTS.md diff --git a/CONCEPTS.md b/CONCEPTS.md new file mode 100644 index 0000000..62b3c59 --- /dev/null +++ b/CONCEPTS.md @@ -0,0 +1,41 @@ +# Concepts + +Shared vocabulary for `last30days-skill`. Terms here have a precise project-specific meaning — distinct enough from their general technical sense that a new contributor would need them defined to follow conversations, PR descriptions, or the SKILL.md contract. + +## The package + +### Skill + +A self-contained agent-instructions package consisting of a `SKILL.md` prose contract plus a sibling `scripts/` directory containing the executable code the SKILL.md invokes. The package conforms to the [Agent Skills](https://agentskills.io) open format and installs across every major harness (Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, and 50+ others) via `npx skills add`, harness-native plugin installers, or per-harness skill directories. A Skill is the unit of distribution; the Skill is the product. + +### Engine + +The Python script (`scripts/last30days.py`) the Skill's SKILL.md invokes to do the actual research work. The Engine and SKILL.md have a contract: SKILL.md tells the model which flags to pass (`--plan`, `--competitors-plan`, `--x-handle`, `--subreddits`, `--emit=compact`, etc.), and the Engine produces a specific output shape (badge line, ranked evidence clusters, emoji-tree footer) that the model is contractually required to pass through. The Engine is implementation; the SKILL.md prose is the agent-facing surface. + +### Harness + +The agent runtime that loads Skills and invokes them on the user's behalf. Claude Code is the most common Harness for this Skill but not the only one — Codex, Cursor, GitHub Copilot, Gemini CLI, and the rest of the Agent Skills ecosystem also count. "Multi-harness" describes a Skill that works correctly across every Harness it installs into; features written without multi-harness awareness (e.g., engine flags with no SKILL.md integration, or paths hardcoded to one Harness's install layout) regress on Harnesses other than the one they were tested against. + +## Research pipeline + +### Primary entity + +The brand or proper-noun core of a research topic — the topic with its Intent modifier stripped. It is what the research is *about*, as distinct from how the user phrased the search. + +### Intent modifier + +A trailing word or phrase in a topic that expresses what the user wants to know rather than what the topic is ("review", "use cases", "pricing"). Stripped when deriving the Primary entity. + +### Entity grounding + +The check that a candidate item plausibly mentions the Primary entity before final ranking. Grounding keys on the head token (first word) of the Primary entity rather than the full phrase — trailing words are usually search descriptors, so requiring them falsely demotes on-entity items. + +An item that fails grounding receives a decisive entity-miss demotion, designed so engagement cannot rescue off-entity content. Because the demotion is decisive, the grounding bar is deliberately conservative: its failure modes degrade toward "no penalty," never toward burying on-entity signal. + +### Keyless path + +The research flow available with no API keys: source data is gathered by scraping and RSS rather than authenticated APIs, and ranking falls back to local scoring instead of LLM-based reranking. This is the free tier of the Skill; lexical quality safeguards like Entity grounding matter most here, because no LLM is available to judge relevance semantically. + +### Comment-enrichment slots + +The small, depth-dependent budget of Reddit posts whose comments get fetched in the Keyless path. Slot selection is relevance-aware: posts that pass Entity grounding claim slots first, so the budget is not spent on high-engagement posts that final ranking will demote anyway. diff --git a/CONFIGURATION.md b/CONFIGURATION.md new file mode 100644 index 0000000..f419e07 --- /dev/null +++ b/CONFIGURATION.md @@ -0,0 +1,565 @@ +# Configuration + +Everything you can tune in `/last30days` without editing the engine source. +Three layers, in order of how often you'll touch them: + +1. **Per-run flags** - what you pass on the command line. +2. **Environment variables and `.env`** - what's enabled across all runs. +3. **Optional trend-monitoring stack** - SQLite store, watchlist, briefings. + +Per-client patterns and the experimental beta channel are at the bottom. + +> Skip ahead: [Where output is saved](#where-output-is-saved) - [API keys](#api-keys-env) - [Reasoning provider](#reasoning-provider-priority) - [Web search backend](#web-search-backend-priority) - [Trend monitoring](#trend-monitoring-store--watchlist--briefings) - [Per-client patterns](#per-client-patterns) - [Beta channel](#beta-channel) + +## Why this document exists + +This is a focused **configuration reference** maintained alongside the engine. The runtime contract (the voice rules, the planner protocol, the LAWs the synthesizing model follows) lives in [`skills/last30days/SKILL.md`](skills/last30days/SKILL.md) - that file is authoritative when the two ever differ. This file's job is narrower: surface every knob a user or operator can turn, in one place, kept current with the code so client-facing setups stay reliable. New configuration knobs added to the engine should be reflected here in the same PR. + +--- + +## Where output is saved + +| Platform | Default path | Override | +|---|---|---| +| Linux / macOS | `LAST30DAYS_MEMORY_DIR` defaults to `~/Documents/Last30Days/` | set `LAST30DAYS_MEMORY_DIR=/path` | +| Windows | `LAST30DAYS_MEMORY_DIR` defaults to `C:\Users\\Documents\Last30Days\` | set `LAST30DAYS_MEMORY_DIR=C:\path` | + +Each run produces one file per topic, slug-named: +`-raw[-suffix].md`. Same topic + same suffix on the same day overwrites; same topic + same suffix on different days appends a date stamp. + +### Recommended `.env` entry + +`.env` files don't travel between machines or harnesses, so set `LAST30DAYS_MEMORY_DIR` explicitly in `~/.config/last30days/.env` once per host. The `/last30days` slash command works without it (the SKILL.md wrapper has its own default), but **bare engine invocations** — `python3 scripts/last30days.py ...` from cron jobs, scripts, or agents that bypass the wrapper — silently no-op the file save unless the engine sees the env var. Mirrors the `LAST30DAYS_STORE` env-or-flag convention. + +```bash +# ~/.config/last30days/.env (pick ONE — uncomment the line that matches your OS) +LAST30DAYS_MEMORY_DIR=~/Documents/Last30Days # POSIX — defaults to this path when unset +# LAST30DAYS_MEMORY_DIR=C:\Users\\Documents\Last30Days # Windows +# LAST30DAYS_LIBRARY_OWNER=Your Name # Optional Atom feed author +# LAST30DAYS_LIBRARY_CONTEXT=off # Disable prior-run context (default: on) +``` + +The engine's `.env` reader doesn't expand `$HOME` — only the tilde, via `Path().expanduser()` downstream. Use `~/...` or an absolute path; **don't** write the literal string `$HOME/...` into your `.env` (it gets stored verbatim and breaks path resolution). + +**Per-run overrides:** + +- `--save-dir ` - one-off output location. **Flag wins over env var.** If neither flag nor env var is set, the engine does not write a file (DB persistence is independent — see `LAST30DAYS_STORE` below). +- `--output ` - write the rendered output to an exact file path, using the format selected by `--emit`. +- `--json-profile {agent,raw}` - select the research JSON shape used with `--emit=json`. `agent` is the default, versioned workflow contract; `raw` preserves the full internal `Report` dump for debugging and power users. See the [JSON export reference](docs/reference/json-export.md). +- `--corpus ` - add a local `.md`/`.txt` directory as a private ranked source; repeat the flag for multiple directories. PDFs are extracted only when `pdftotext` is on PATH and otherwise skip with a note. File modification time supplies recency, so the normal research window applies. +- `--corpus-all-time` - include relevant registered files whose modification time is older than the current research window. Without this flag, a 30-day run includes only files modified in those 30 days. +- `--register {default,exec,dev,creator,eli5}` - shape a standard single-topic Markdown or HTML research brief for its audience. `exec` is decisions-first with five core findings and numbers up top; `dev` gives GitHub, code, and technical signals more room; `creator` leads with hooks, Best Takes, community reactions, and virality metrics; `eli5` keeps the established evidence layout and asks the synthesizing agent for accessible language. Registers do not change retrieval, JSON exports, discovery, drill, library feed/search, or comparison output. +- `--discover ` - topic-less trending discovery. Sweeps rising/top-week Reddit listings (category-mapped communities, with r/all as the uncategorized fallback), Hacker News front/best stories, Digg AI 1000 clusters when `digg-pp-cli` is on PATH, and broad X activity when an X backend is authenticated, then returns 5-10 engagement-velocity-ranked topics. Run without a positional topic; it is mutually exclusive with `--drill`. `--emit=json` uses the separate versioned discovery contract documented in the [JSON export reference](docs/reference/json-export.md). +- `--drill ` - deep follow-up over the fresh `~/.config/last30days/last-report.json` cache. Accepts a 1-based index (`--drill "cluster 3"` or `--drill "3"`) or a fuzzy cluster title/entity description. It re-fetches only sources that contributed to the matched cluster, enables their deep comment/transcript enrichment paths, merges/dedupes the evidence, and replaces the cache so drills can chain. Run it without a positional topic; if the cache is absent or expired, run a normal research pass first. +- `--verify-freshness` - opt into an act-time verification pass for conservatively extracted, source-grounded claims (Polymarket odds/end dates, GitHub stars, StockTwits sentiment ratios, and explicit status assertions). With a topic, verification runs after research; without a topic, it re-verifies the fresh `last-report.json` cache without repeating research. Verdicts are `current`, `stale`, `contradicted`, or `unsupported` and include evidence timestamps. Set `LAST30DAYS_VERIFY_FRESHNESS=on` in `.env` to make the pass default for normal research runs. +- `--save-suffix ` - distinguish runs of the same topic (e.g. per client: `--save-suffix=acme`). +- `--no-browser-cookies` - hard-disable browser-cookie extraction for this run, even when `FROM_BROWSER` is configured. MCP and folder-mode hosts use this for safe defaults. +- `--publish-html` - with `--emit=html`, publish the rendered HTML to `ht-ml.app` after local output/save-dir writes. This is explicit opt-in only; pages are public by default. +- `library feed` - scan `LAST30DAYS_MEMORY_DIR` plus `~/.local/share/last30days/briefs/`, then write a self-contained `index.html`, valid Atom `feed.xml`, and browser-ready pages under `briefs/`. The index is reverse-chronological and grouped by topic. For direct engine use: `python3 skills/last30days/scripts/last30days.py library feed`; use `--save-dir ` to scan and write another library directory. +- `library feed --publish` - publish each rendered brief and the HTML index through `ht-ml.app`. The generated `feed.xml` remains a first-class local artifact because this HTML host does not serve Atom with an XML content type. Host the output directory on any static host (for example, GitHub Pages) to make `feed.xml` subscribable. Publishing is explicit opt-in and pages are public by default; public pages may be crawled or indexed. +- `library search ""` - incrementally sync `LAST30DAYS_MEMORY_DIR` and `~/.local/share/last30days/briefs/` through the shared library scanner, then run offline SQLite FTS5 across those briefs plus dated per-run sightings in `~/.local/share/last30days/research.db`. Results are grouped by topic run. The sibling search index lives at `~/.local/share/last30days/library.db`; hand edits, renames, and deletes are picked up on sync, and a corrupt index is rebuilt automatically. +- `LAST30DAYS_LIBRARY_OWNER=` - optional feed-level Atom author. Defaults to `last30days research library`. +- `LAST30DAYS_LIBRARY_CONTEXT=on|off` - controls passive prior-run context on fresh research reports. It defaults to `on`; matching saved research appears in a short `From your library` section. Set `off` to skip the local index read and leave reports unchanged. Mock runs, eval replays, and internal fan-out subruns do not load library context, keeping fixtures deterministic. +- `--publish-password ` - optional shared password for `--publish-html` or `library feed --publish`. Prefer `LAST30DAYS_PUBLISH_PASSWORD=` instead so the password is not visible in the process list or shell history. Use a unique non-personal password; never reuse the user's own password. The provider's update key is treated as secret and is not written to stdout, HTML, raw output, or `.publish.json` metadata. +- `--preflight` - print a human-readable permission preflight. It reports config source, project config trust/ignore state, browser-cookie plan, planned writes, optional commands, source availability, and endpoint overrides without reading browser cookies, writing setup/config/report files, or running research. Add `--emit=json` for the separate machine-readable preflight contract (`--json-profile` does not change it); use `--diagnose` when you need the full source diagnostic JSON. +- `--welcome` - print the first-run welcome text (engine-owned; the skill relays it verbatim on first run). Safe: prints and exits, no reads or writes. +- `--record-fixtures ` - developer-only, hidden flag that records scrubbed source responses for the offline research-quality eval harness. It writes `/http.json`; see the [eval reference](docs/reference/eval.md) before recording or committing fixtures. +- `setup --github-start` / `setup --github-poll` - the two-command ScrapeCreators GitHub device-auth split. `--github-start` submits the device flow, copies the code to the clipboard, opens the browser, and returns the code immediately (foreground); `--github-poll` waits for you to authorize and persists the key. `setup --github` still runs both in one shot for back-compat. + +The footer line `📎 Raw results saved to ${LAST30DAYS_MEMORY_DIR:-$HOME/Documents/Last30Days}/-raw.md` is the canonical pointer; if it shows backslashes on Windows update past v3.1.1. + +Every completed research pass writes a structured `last-report.json` cache beside `last-run.json`. HTML follow-up renders use it so `--emit=html --synthesis-file` can reuse report metadata/footer without fetching sources again; `--drill ` uses it as the grounded starting point for targeted re-research; bare `--verify-freshness` updates only the cached report's claim verdicts. Reuse is intentionally short-lived: `LAST30DAYS_REPORT_CACHE_TTL_SECONDS` defaults to `3600` (one hour). Set it to another integer number of seconds to tune the window, or `0` to disable report-cache reuse and post-run follow-ups. + +--- + +## First-run onboarding + +On the very first `/last30days` run (no `~/.config/last30days/.env`, or `SETUP_COMPLETE` not set), the skill runs a consent-driven onboarding the model drives in chat. It takes one of two forms depending on the host: + +- **Claude Code Modal Flow** - the restored v3.0.0 guided NUX, used on hosts with `AskUserQuestion` (Claude Code). A welcome message, then modals for Auto/Manual/Skip setup, cookie consent, the ScrapeCreators signup offer, a TikTok/Instagram `INCLUDE_SOURCES` opt-in, and a first-topic picker. +- **Non-Modal Prose Flow** - the same work done conversationally on hosts without modals (OpenClaw, Codex, Cursor, Gemini CLI, Grok, raw CLI). + +Both share the same consent points: + +1. **Browser cookies** - the model asks before reading anything. On yes it runs `setup --allow-browser-cookies`, which extracts Firefox/Safari cookies (never Chrome unless `FROM_BROWSER=auto` or a named Chromium browser is explicitly configured) to unlock X/Twitter and other logged-in sources, and installs yt-dlp + the keyless Digg CLI. On no it runs setup without `--allow-browser-cookies` (or with `FROM_BROWSER=off`), which skips all cookie reads and still installs the tools. +2. **Full Disk Access (macOS)** - if a cookie read is permission-denied, the model surfaces the System Settings > Privacy & Security > Full Disk Access fix and offers one retry. +3. **ScrapeCreators GitHub signup** - offered on every first run (10,000 free calls). On consent it runs `setup --github`, which opens a browser for GitHub device-auth (or registers instantly via the `gh` CLI when installed) and, on success, **persists `SCRAPECREATORS_API_KEY` automatically** (0o600, masked in output) so TikTok, Instagram, and the SC Reddit/YouTube backups activate on the next run. Decline anytime; you can run it later by asking to set up ScrapeCreators. The Step 5 opt-in has two tiers, both comment-enabled: **Recommended** (TikTok + Instagram posts AND top comments, plus YouTube comments — `INCLUDE_SOURCES=tiktok,instagram,youtube_comments,tiktok_comments,instagram_comments`) and **Everything**, which also adds Threads + Pinterest. Comments are on by default; Threads and Pinterest are the only opt-in extras. + +Re-run onboarding by deleting `~/.config/last30days/.env`. The mechanical work lives in `scripts/lib/setup_wizard.py`; the consent conversation and both host flows are specified in `skills/last30days/SKILL.md` Step 0. The original v3.0.0 wizard is captured at `docs/reference/old-nux-wizard-v3.0.0.md`. + +--- + +## API keys (`.env`) + +The skill reads keys from a `.env` file. Two locations are supported: + +1. **`~/.config/last30days/.env`** at the user level (global default) - loaded by default. +2. **`.claude/last30days.env`** in the current project directory (project-scoped) - loaded only when trusted by setting `LAST30DAYS_TRUST_PROJECT_CONFIG=1` in the process environment or global config. + +Override the global location with `LAST30DAYS_CONFIG_DIR=/path` (or `LAST30DAYS_CONFIG_DIR=""` for no-config mode). File permissions should be `600` on POSIX hosts - the engine warns on every run if they aren't. + +The project-scoped file is useful for **intentional per-client setups**: drop a `.claude/last30days.env` into each client folder (`SCRAPECREATORS_API_KEY`, `INCLUDE_SOURCES`, `LAST30DAYS_MEMORY_DIR`, `BSKY_HANDLE`, etc), then opt in with `LAST30DAYS_TRUST_PROJECT_CONFIG=1` from your shell or `~/.config/last30days/.env`. Folder-mode hosts such as Codex desktop do not trust hidden project config by default, and discovery stops at the git root so unrelated parent folders cannot silently influence runs. + +**`LAST30DAYS_API_KEY`** + **`LAST30DAYS_API_BASE`** - optional remote-API backend. Set BOTH to route research through a remote API endpoint instead of running the local sources: `LAST30DAYS_API_BASE` is the endpoint (there is no built-in default), and `LAST30DAYS_API_KEY` is the bearer key for it. When both are set (and `--mock` is not passed), the engine submits the topic to that endpoint, polls with progress on stderr, and prints the server's report; none of the per-source keys below are used for that run. A configured local corpus is the privacy exception: the engine bypasses the hosted backend and runs locally rather than forwarding file-derived input. Non-default `--register` selections are forwarded with the request so server-side synthesis uses the same audience preset. Leave either unset to run local sources exactly as normal. Unlike the other keys here, these two are read only from the **process environment** (export them in your shell or host config) - they are deliberately not loaded from the `.env` files above, so a project-scoped `.env` can never silently redirect research to a remote endpoint. The remote endpoint does not return the local `Report` needed for the versioned agent JSON profile; use `--emit=json --json-profile=raw` for its existing server-response JSON contract. + +### Local corpus (your files) + +Register persistent directories with `LAST30DAYS_CORPUS_DIRS`. Separate paths with `:` on macOS/Linux (the platform path separator is `;` on Windows): + +```bash +# ~/.config/last30days/.env +LAST30DAYS_CORPUS_DIRS=~/notes:~/meeting-transcripts +# LAST30DAYS_CORPUS_IN_EXPORT=1 # explicit agent-JSON opt-in; off by default +``` + +The slash-command experience remains primary: ask `/last30days` to include your registered notes. For direct engine scripting or development, the equivalent one-off invocation is: + +```bash +python3 skills/last30days/scripts/last30days.py "MCP servers" \ + --corpus ~/notes --corpus ~/meeting-transcripts +``` + +**Privacy:** corpus files are read locally, never sent through a source HTTP client, never forwarded to `LAST30DAYS_API_BASE`, never included in remote reranker/fun-scoring prompts, and do not consume network-source concurrency or retry budget. Matches appear in a badged **From your files** section. Corpus candidates are removed from `--publish-html`, `library feed --publish`, and the versioned agent JSON export by default, including corpus-derived cluster titles and source outcomes. Set `LAST30DAYS_CORPUS_IN_EXPORT=1` only when you intentionally want corpus results in the agent JSON written to local stdout/files. The unversioned `--json-profile=raw` debug dump remains a full local report and can contain corpus text; do not redirect it to an external system unless that is intentional. Extracted text is cached by file mtime in `~/.config/last30days/corpus-cache.json` with mode `0600`; a corpus-bearing `last-report.json` cache is also tightened to `0600`. Delete either cache at any time to clear it. + +**Source-by-source** - what each key unlocks: + +| Source | Key(s) | Required for | Free tier | +|---|---|---|---| +| Local corpus | `--corpus ` or `LAST30DAYS_CORPUS_DIRS` | private `.md`/`.txt`; `.pdf` when `pdftotext` is on PATH | yes (offline) | +| Reddit (public) | none (default); `SCRAPECREATORS_API_KEY` + `LAST30DAYS_REDDIT_BACKEND=scrapecreators` to pin SC primary with public fallback | always on; SC pin requires `SCRAPECREATORS_API_KEY` | yes | +| Hacker News | none | always on | yes | +| Polymarket | none | always on | yes | +| StockTwits | none | auto-on for ticker/crypto topics only (gated by symbol detection); never registered for non-financial topics | yes (public API, ~200 req/hr per IP) | +| DripStack | none | opt-in only: per run with `--search dripstack`, or persistently with `INCLUDE_SOURCES=dripstack` in `.env`. Searches premium financial newsletters and analyst writeups via a free, public search API — no key needed. Never active without the opt-in. | yes when opted in (public API, no auth) | +| GitHub | `gh` CLI installed (uses your GitHub auth) | always on if `gh` present | yes | +| YouTube | `yt-dlp` CLI installed; `SCRAPECREATORS_API_KEY` adds a server-side transcript fallback used only when yt-dlp fails (429 / bot-gate) | always on if `yt-dlp` present; SC transcript fallback default-on when key set (no credit spent unless yt-dlp fails) | yes | +| YouTube comments | `SCRAPECREATORS_API_KEY` + `INCLUDE_SOURCES` contains `youtube_comments` (**on by default** — written by the Step 5 Recommended tier) | top comments (by likes) on the top ~3 videos by engagement | ~3 calls/run; 10K free calls | +| TikTok comments | `SCRAPECREATORS_API_KEY` + `INCLUDE_SOURCES` contains `tiktok_comments` (**on by default** — Step 5 Recommended tier) | top comments (by `digg_count`) on the top ~3 TikTok posts | ~3 calls/run; 10K free calls | +| Instagram comments | `SCRAPECREATORS_API_KEY` + `INCLUDE_SOURCES` contains `instagram_comments` (**on by default** — Step 5 Recommended tier) | top comments (by `comment_like_count`) on the top ~3 Instagram posts, via `/v2/instagram/post/comments` | ~3 calls/run; 10K free calls | +| Digg | `digg-pp-cli` on PATH (auto-installed during first-run setup via `npx -y @mvanhorn/printing-press-library@0.1.16 install digg --cli-only`; binary defaults to `$HOME/.local/bin` — Hermes/OpenClaw agent subprocesses must inherit that dir on PATH for Digg to activate; prior pp-digg installs use the same path) | always on if `digg-pp-cli` on PATH | yes (free, keyless, read-only) | +| arXiv | `arxiv-pp-cli` on PATH (auto-installed during first-run setup via `npx -y @mvanhorn/printing-press-library@0.1.16 install arxiv --cli-only`) | always on if `arxiv-pp-cli` on PATH; fires on research/technical topics and stays quiet otherwise (relevance + 365-day recency gating) | yes (free, keyless) | +| Techmeme | `techmeme-pp-cli` on PATH (auto-installed via `... install techmeme --cli-only`) | always on if `techmeme-pp-cli` on PATH; searches Techmeme's live archive and keeps only headlines dated within the research window (undated headlines flow through as low-confidence) | yes (free, keyless) | +| Trustpilot | `trustpilot-pp-cli` on PATH (NOT auto-installed; install on demand via `npx -y @mvanhorn/printing-press-library@0.1.16 install trustpilot --cli-only`) + `INCLUDE_SOURCES` contains `trustpilot` | **opt-in, off by default**; when enabled, activates only on company/brand topics — or on any topic when `--trustpilot-domain=` pins the review page explicitly (bypasses the brand-shape gate; also the per-entity `trustpilot_domain` key in `--competitors-plan`). Bare company names auto-resolve to the review-page domain via the CLI's search. The session warms once before the search fan-out; a stale session does a ~10s headless-Chrome WAF-cookie harvest (set `LAST30DAYS_TRUSTPILOT_NO_BROWSER=1` to disable in cron/CI) | yes (no API key; cookie-replay after the one-time harvest) | +| X / Twitter | one of: `AUTH_TOKEN` + `CT0` (browser cookies, Bird CLI), `XAI_API_KEY`, `XQUIK_API_KEY`, `SCRAPECREATORS_API_KEY`, or `FROM_BROWSER` (cookie-jar auth) | X items in results | cookie-jar / Bird = free; Xquik / xAI / ScrapeCreators = key-based | +| TikTok | `SCRAPECREATORS_API_KEY` + `INCLUDE_SOURCES` contains `tiktok` | TikTok items | 10K free calls | +| Instagram | `SCRAPECREATORS_API_KEY` + `INCLUDE_SOURCES` contains `instagram` | Instagram Reels | 10K free calls; raise `LAST30DAYS_TRANSCRIPT_TIMEOUT` (default 30s) if SC is slow on your network | +| Threads | `SCRAPECREATORS_API_KEY` + `INCLUDE_SOURCES` contains `threads` | Threads items | 10K free calls | +| Pinterest | `SCRAPECREATORS_API_KEY` + `INCLUDE_SOURCES` contains `pinterest` | Pinterest items | 10K free calls | +| LinkedIn | `SCRAPECREATORS_API_KEY` + `INCLUDE_SOURCES` contains `linkedin` | LinkedIn posts + articles (articles rank as high signal on person topics) | 10K free calls; power-user opt-in, not offered during first-run onboarding | +| Xiaohongshu (RED) | logged-in x-mcp browser plugin or `xiaohongshu-mcp` service; optional `XIAOHONGSHU_API_BASE` for custom URLs | requested-only via `--search xhs` or `--search xiaohongshu`; auto-probes `http://localhost:18060` then `http://host.docker.internal:18060` | no last30days API key; depends on your local browser-session service | +| Bluesky | `BSKY_HANDLE` + `BSKY_APP_PASSWORD` | Bluesky items | yes (app password at bsky.app) | +| TruthSocial | `TRUTHSOCIAL_TOKEN` | TruthSocial items | yes | +| Web search | one of: `BRAVE_API_KEY`, `EXA_API_KEY`, `SERPER_API_KEY`, `PARALLEL_API_KEY` | `--auto-resolve` and Step 2 supplements | Brave has a free tier; native WebSearch on Claude Code / Codex / Gemini works as a fallback | +| Perplexity Sonar / Search API / Deep Research | `PERPLEXITY_API_KEY` (preferred) or `OPENROUTER_API_KEY` (Sonar fallback) | `INCLUDE_SOURCES=perplexity`; `--deep-research` flag (~$0.90/query) | no | +| Caption-free transcription | `GROQ_API_KEY` (free tier, preferred) or `OPENAI_API_KEY` (paid backstop); requires `ffmpeg` | Whisper transcription for audio/video without captions (groundwork: module shipped, not yet auto-invoked by the engine) | Groq free tier is generous; needs ffmpeg installed | +| Jobs / careers pages | none for public ATS pages; web backend improves fallback discovery | `--hiring-signals` and strong Hiring Signals in standard company reports | yes | +| Apify (alternate scraper) | `APIFY_API_TOKEN` | fallback for Reddit/TikTok/Instagram when ScrapeCreators is exhausted | yes (limited) | + +**X on cookie-less hosts.** Bird (the free X source) scrapes X using your logged-in browser cookies (`AUTH_TOKEN`/`CT0`), which agent hosts like OpenClaw, CI, or headless runs often can't supply — and scraping carries some account risk. On those, set `XQUIK_API_KEY` (or `XAI_API_KEY`) for full, ranked X coverage from a single API key: the same engagement-based ranking, first-party authorship, and handle (from/mentions) lanes the native X source gets. `--diagnose` reports whether the key is working (and flags an unpaid key). + +**Example `.env` skeleton** (placeholders only - replace with your own values): + +```bash +# Reasoning + planning (one provider; see priority below) +GOOGLE_API_KEY= + +# Web search backend (one is enough; Brave is the cheapest) +BRAVE_API_KEY= + +# Optional sources +SCRAPECREATORS_API_KEY= +INCLUDE_SOURCES=tiktok,instagram +# Xiaohongshu is requested-only: run with --search xhs after starting a local +# browser-session service. Defaults probe localhost, then host.docker.internal. +# XIAOHONGSHU_API_BASE=http://localhost:18060 +# Add perplexity to INCLUDE_SOURCES when you want the paid Perplexity source. +# PERPLEXITY_API_KEY= +# INCLUDE_SOURCES=tiktok,instagram,perplexity +# LAST30DAYS_PERPLEXITY_MODE=sonar # sonar | search | both +# LAST30DAYS_PERPLEXITY_MODEL=sonar-pro # sonar | sonar-pro | sonar-reasoning-pro + +# X authentication (one option only) +AUTH_TOKEN= +CT0= +# OR xAI API key (paid) +# XAI_API_KEY= +# OR Xquik key-based X search +# XQUIK_API_KEY= +# OR cookie-jar (free; logs in via your browser session). +# Unset = no browser-cookie reads. FROM_BROWSER=auto tries Firefox/Safari and +# the Chromium family (Chrome, Brave, Edge, Vivaldi, Opera, Arc, Chromium); it +# only prompts for macOS Keychain access on the browser that actually holds your +# X cookies. Or name a single browser, e.g. brave/edge. On Windows only Firefox +# is supported. +# FROM_BROWSER=firefox + +# Bluesky +BSKY_HANDLE=.bsky.social +BSKY_APP_PASSWORD= +``` + +After editing: `chmod 600 ~/.config/last30days/.env` (or `chmod 600 .claude/last30days.env` if using the project-scoped variant). + +**Troubleshooting:** if a source you expected to see isn't appearing in results, run `python3 scripts/last30days.py --preflight` for a human permission summary or `python3 scripts/last30days.py --diagnose` for full JSON diagnostics. Both are safe: they report source availability, config source, browser-cookie plan, external command availability, write destinations, and ignored untrusted project config without reading browser cookies or running live provider probes. + +### Perplexity source modes + +Perplexity is a paid opt-in source. A direct `PERPLEXITY_API_KEY` unlocks first-party Perplexity features. `OPENROUTER_API_KEY` remains a Sonar compatibility fallback only; Perplexity Search API and async Deep Research call Perplexity directly. + +`LAST30DAYS_PERPLEXITY_MODE` controls normal `perplexity` source runs: + +| Value | Behavior | Calls | +|---|---|---| +| `sonar` (default) | Sonar synthesis plus citations. | one Sonar call | +| `search` | Raw ranked Search API rows; best when you want source aggregation over prose. | one Search API call | +| `both` | Sonar synthesis plus raw ranked Search API rows, deduped by URL. | one Search API call and one Sonar call | + +`--deep-research` ignores `LAST30DAYS_PERPLEXITY_MODE` and uses `sonar-deep-research`. With `PERPLEXITY_API_KEY`, it submits to Perplexity's async Sonar endpoint and polls with a hard wall-clock timeout. The async request uses a deterministic idempotency key derived from the request body. If the request is still running at timeout, fails remotely, or polling hits a transport/rate-limit error after the async id exists, the raw artifact records the async request id, idempotency key, last status, lifecycle timestamps returned by Perplexity, poll count, and timeout/error fields so you can inspect or resume by id outside the run. With only `OPENROUTER_API_KEY`, it keeps the OpenRouter synchronous fallback. + +Perplexity-specific env vars: + +| Env var | Default | Applies to | Notes | +|---|---|---|---| +| `LAST30DAYS_PERPLEXITY_MODE` | `sonar` | normal Perplexity source runs | `sonar`, `search`, or `both`; `search` and `both` require `PERPLEXITY_API_KEY`. | +| `LAST30DAYS_PERPLEXITY_MODEL` | `sonar-pro` | direct Sonar only | Supported: `sonar`, `sonar-pro`, `sonar-reasoning-pro`. `--deep-research` forces `sonar-deep-research`. | +| `LAST30DAYS_PERPLEXITY_MAX_RESULTS` | `10` | Search API | Clamped to Perplexity's 1..20 range. | +| `LAST30DAYS_PERPLEXITY_SEARCH_CONTEXT_SIZE` | provider default | Search API | `low`, `medium`, or `high`; omitted unless set. | +| `LAST30DAYS_PERPLEXITY_SEARCH_MODE` | provider default | direct Sonar | `web`, `academic`, or `sec`. | +| `LAST30DAYS_PERPLEXITY_DOMAIN_FILTER` | unset | Search API and direct Sonar | Comma-separated domains, max 20. | +| `LAST30DAYS_PERPLEXITY_LANGUAGE_FILTER` | unset | Search API and direct Sonar | Comma-separated ISO 639-1 language codes, max 20. | +| `LAST30DAYS_PERPLEXITY_COUNTRY` | unset | Search API | Two-letter country code such as `US`. | +| `LAST30DAYS_PERPLEXITY_RECENCY_FILTER` | unset | Search API and direct Sonar | `hour`, `day`, `week`, `month`, or `year`. | +| `LAST30DAYS_PERPLEXITY_REASONING_EFFORT` | unset | direct Sonar | `minimal`, `low`, `medium`, or `high`. | +| `LAST30DAYS_PERPLEXITY_DEEP_TIMEOUT_SECONDS` | `600` | direct async Deep Research | Wall-clock polling deadline. | + +### Encrypted credential sources (Keychain / pass) + +If you'd rather not keep keys in a plaintext `.env`, the loader has two +encrypted sources that decrypt secrets transiently at call time (never written +to disk, never logged). Both are **lowest-priority and additive** — an explicit +`.env` or process-env value always overrides them, so you can mix and match. The +`pass` source is only consulted for keys still missing after the higher-priority +sources, so a box that merely has `pass` installed pays no decrypt cost when +everything is already in `.env`. + +Effective credential priority is: process env > trusted project config +(`.claude/last30days.env`) > global config (`~/.config/last30days/.env`) > +macOS Keychain > `pass`(1). The SessionStart status hook also checks for +Keychain item **presence** under `last30days-` without reading secret +values, so a Keychain-only setup is treated as configured instead of showing the +first-run welcome again. + +| Platform | Source | Store keys with | Lookup convention | +|---|---|---|---| +| macOS | Keychain | `scripts/setup-keychain.sh` | service name `last30days-` | +| Linux / Unix (anywhere `pass` exists, incl. macOS) | [`pass`(1)](https://www.passwordstore.org/) | `scripts/setup-pass.sh` | pass path `last30days/` | + +```bash +# macOS Keychain +./scripts/setup-keychain.sh # interactive; --list / --delete KEY + +# pass(1) — Linux/Unix analog +./scripts/setup-pass.sh # interactive; --list / --delete KEY +./scripts/setup-pass.sh SCRAPECREATORS_API_KEY # just one key +``` + +The `pass` source honors `PASSWORD_STORE_DIR`. If your store organizes secrets +under a different prefix, point the loader at it with `LAST30DAYS_PASS_PREFIX` +(works from your `.env` too, and must match where `setup-pass.sh` wrote them). +The prefix is used verbatim, so keep the trailing separator: + +```bash +export LAST30DAYS_PASS_PREFIX="secrets/last30days/" # default: last30days/ +``` + +Both sources cover the same key set as the `.env` skeleton above. + +#### Reusing existing macOS Keychain items + +If you already have keys stored under another Keychain naming convention, you +can reference them without copying the secret by setting non-secret alias +metadata in `LAST30DAYS_KEYCHAIN_ALIASES`. The loader still checks +`last30days-` first; aliases are fallback lookups only. + +```bash +# ~/.config/last30days/.env +LAST30DAYS_KEYCHAIN_ALIASES={"XAI_API_KEY":{"account":"keychain-user","service":"existing-xai-api-key"},"BRAVE_API_KEY":"existing-brave-api-key"} +``` + +Each JSON key must be one of the supported env-var names (`XAI_API_KEY`, +`SCRAPECREATORS_API_KEY`, `BRAVE_API_KEY`, etc). A string value means "use this +service name with the current user account"; an object can specify both +`account` and `service`. Lists are allowed for fallback order: + +```bash +LAST30DAYS_KEYCHAIN_ALIASES={"XAI_API_KEY":[{"account":"keychain-user","service":"existing-xai-api-key"},{"service":"last-resort-xai"}]} +``` + +The alias value contains no secret material; it is safe to keep in `.env` as +configuration. The secret itself remains in its original Keychain item and is +read directly by the engine process. + +Write `LAST30DAYS_KEYCHAIN_ALIASES` as a single-line JSON value in `.env`. +Multiline JSON formatting is not supported because `.env` files are parsed +line-by-line. + +### Bluesky app-password format and search host + +`BSKY_APP_PASSWORD` should be a 19-char app password in `xxxx-xxxx-xxxx-xxxx` format (lowercase alphanumeric, three hyphens). Generate one at . The AT Protocol's `createSession` endpoint also accepts your main account login password, but that's bad hygiene — main passwords have no scope (an app password can be limited to non-DM access) and can't be revoked individually. + +The skill defaults to `api.bsky.app` for `searchPosts`, which is the canonical authenticated AppView. The previous default `public.api.bsky.app` is the unauthenticated public mirror and is currently blocked by BunnyCDN for `searchPosts` regardless of auth header (verified 2026-05-04). If Bluesky migrates infrastructure again, override the host without a code change by setting `BSKY_SEARCH_HOST` in your `.env`: + +```bash +BSKY_SEARCH_HOST=api.bsky.app # default — change only if Bluesky moves +``` + +### Default source set (`LAST30DAYS_DEFAULT_SEARCH`) + +By default the engine decides the source set per query (everything available, minus `EXCLUDE_SOURCES`). To pin a **fixed** source set for every run without passing `--search` each time — and without patching `SKILL.md`, which a release would overwrite — set: + +```bash +LAST30DAYS_DEFAULT_SEARCH=reddit,x,youtube,hn +``` + +Accepts the same comma-separated names and aliases as `--search` (`web` → grounding, `hn` → hackernews, `bsky` → bluesky, `xhs` → xiaohongshu). Precedence: an explicit `--search` on the command line always wins; `LAST30DAYS_DEFAULT_SEARCH` applies only when the flag is omitted; when neither is set, per-query behavior is unchanged. `INCLUDE_SOURCES` / `EXCLUDE_SOURCES` keep their existing additive/subtractive roles on whichever set is selected. + +### Audience register (`LAST30DAYS_REGISTER`) + +The default standard brief stays balanced and byte-compatible with prior releases. To keep a named audience preset across runs, set one of the supported values: + +```bash +LAST30DAYS_REGISTER=exec # default | exec | dev | creator | eli5 +``` + +An explicit `--register` wins over `LAST30DAYS_REGISTER`; the environment/config value defaults to `default`. Presets are intentionally named and bounded - arbitrary prompt or template files are not accepted. Existing `ELI5_MODE=true` configurations continue to resolve to the `eli5` register when no explicit register is selected, but new configuration should use `LAST30DAYS_REGISTER=eli5`. + +--- + +## Reasoning provider priority + +`/last30days` needs one reasoning model for planning + reranking when you don't pass `--plan` yourself. Auto-detect priority (set `LAST30DAYS_REASONING_PROVIDER=` to pin one): + +1. **Gemini** - `GOOGLE_API_KEY` / `GEMINI_API_KEY` / `GOOGLE_GENAI_API_KEY` +2. **OpenAI** - `OPENAI_API_KEY` only. Codex ChatGPT auth at `~/.codex/auth.json` is intentionally not used as an OpenAI provider credential. +3. **xAI** - `XAI_API_KEY` +4. **OpenRouter** - `OPENROUTER_API_KEY` (Sonar fallback for the Perplexity source / `--deep-research`; also usable as a reasoning provider) +5. **Local / deterministic** - always available, lowest quality + +When you invoke `/last30days` from Claude Code, Codex, or Gemini, the host model **is** the reasoning provider for plan + synthesis - you don't need any of the keys above unless you also run the script headlessly (cron, CI, watchlist). + +--- + +## Web search backend priority + +The search-source preference ladder, strict best-to-floor: + +1. **Host web search** - whatever web-search capability the agent session already has: built-in search, a deferred web-search tool that must be loaded first, or an installed connector such as Brave, Firecrawl, Exa, Serper, or another provider. Best results; used automatically on hosts that have it. A failed lookup for one specific tool name is not fatal when another web-search capability is available. Signalled to the engine via `LAST30DAYS_NATIVE_SEARCH=1` (the skill sets this for you when your agent session has web search) so the engine does not run a worse search underneath it. +2. **Paid engine backend** - one of `BRAVE_API_KEY`, `EXA_API_KEY`, `SERPER_API_KEY`, `PARALLEL_API_KEY`, auto-detected in that order. Override per-run with `--web-backend=`. +3. **Keyless engine floor** - zero-key web search (DuckDuckGo, plus an optional SearXNG instance) and zero-key page fetch (Jina Reader). Runs only when the agent session has **no** host web search **and** no paid key is set, so headless/cron and hosts without a search tool still get general-web coverage. Force it explicitly with `--web-backend=keyless`. + +Relevant env vars: + +| Var | Effect | +| --- | --- | +| `LAST30DAYS_NATIVE_SEARCH=1` | Tells the engine your agent session has host-side web search; suppresses the keyless floor. Set automatically by the skill when web search is available. Leave unset when the agent has no web-search tool so the floor runs. | +| `LAST30DAYS_SEARXNG_URL=` | Optional. A SearXNG instance used as the keyless-search fallback rung when DuckDuckGo returns nothing. | +| `LAST30DAYS_TRUSTPILOT_NO_BROWSER=1` | Optional. Truthy value disables the Trustpilot source's one-time headless-Chrome WAF-cookie harvest, so an automated/headless run (cron, CI, the eval harness) never spawns a browser. Trustpilot still degrades to empty gracefully. | + +Privacy note: the keyless floor sends the query (to DuckDuckGo / your SearXNG instance) and any fetched URL (to Jina Reader) to those third parties. It is intended for public-research use; results may be cached snapshots. It never runs when native search or a paid backend is in play. + +Visible quality difference between hosts with vs without native search or a configured backend. If your client setup produces thinner results than yours, this is usually why. + +--- + +### `--hiring-signals` flag + +Use `--hiring-signals` for a focused company hiring-signal report: + +```bash +python3 skills/last30days/scripts/last30days.py "Listen Labs" --hiring-signals +``` + +The engine treats public jobs/careers postings as evidence of focus or priority shifts, not exact roadmap predictions. Standard company runs may include Hiring Signals automatically when multiple current roles support the same interpretation; weak or unavailable hiring evidence is omitted. + +--- + +## Health check (`doctor`) + +One command answers "what's broken, what's serving, and what do I run to fix it" — per source: a rollup tier (ok / warn / off / error), the specific probe state, the backend the next run will use (for chained sources), and an exact fix on any non-ok tier: + +```bash +python3 skills/last30days/scripts/last30days.py doctor # grouped text report +python3 skills/last30days/scripts/last30days.py doctor --json # machine contract +python3 skills/last30days/scripts/last30days.py doctor --cached # serve the cached report while fresh +``` + +Slash-command form: `/last30days doctor`. Reporting problems is a successful run — the exit code is always 0, no browser cookies are read, no network calls are made, and no secret values appear anywhere (key presence is booleans only). Backends within a chained source are probed sequentially with a 5-second budget per binary probe, so a chained source's worst-case check time is additive across its backends (only reached when several binaries hang at once). + +Every live run writes its JSON result to `~/.config/last30days/doctor-cache.json` (beside `last-run.json`; honors `LAST30DAYS_CONFIG_DIR`). `doctor --cached` returns that stored report when it is younger than the TTL, and falls through to a live run — rewriting the cache — when it is stale, absent, or corrupt. The cache also self-invalidates on configuration change: the payload carries a schema stamp plus a fingerprint of non-secret config signals (which credentials are present as booleans, the `LAST30DAYS_X_BACKEND` / `LAST30DAYS_REDDIT_BACKEND` pin values, and `INCLUDE_SOURCES`), so adding or removing a key, changing a pin, or toggling an opt-in source makes the next `--cached` call run live — no raw secret ever enters the fingerprint or the file. Every report also carries `from_cache` (true/false) and `generated_at` (when the report was built), in the `--json` top level and as a final `generated: … (cached|live)` text line, so you can always tell how old a cached answer is. A failed cache write is never fatal — doctor prints a one-line stderr warning and continues. An explicit `doctor` without `--cached` always runs live and refreshes the cache. + +| Var | Effect | +| --- | --- | +| `LAST30DAYS_DOCTOR_TTL` | Freshness window for `doctor --cached`, in **seconds**. Defaults to `900` (15 minutes). `0` makes every `--cached` call run live. | +| `LAST30DAYS_X_BACKEND` | Pins the X backend (`xai` / `bird` / `xurl` / `xquik`); doctor renders the pin and predicts "will use" accordingly. | +| `LAST30DAYS_REDDIT_BACKEND` | `scrapecreators` makes ScrapeCreators the primary Reddit backend; doctor renders Reddit's conditional routing with the pin applied. | + +Web search has **no** env pin — pin it per-run with `--web-backend=` only (see [Web search backend priority](#web-search-backend-priority)). + +### Strict exit for degraded runs + +By default a research run exits `0` even when a source failed mid-run (rate-limited, auth-failed, unreachable, timeout, schema-drift) — the report still renders, with the failure annotated in the per-source footer and a partial-coverage warning. Wrappers that need to distinguish degraded coverage from success (cron briefs, CI, downstream agents) can opt in: + +| Var | Effect | +| --- | --- | +| `LAST30DAYS_STRICT_EXIT` | Truthy (`1`/`true`/`yes`/`on`): the engine exits `3` when any source outcome is neither `ok`, `no-results`, nor `skipped-unconfigured`. A one-line `strict-exit: degraded sources: ...` note goes to stderr. Default (unset): exit `0`, unchanged behavior. | + +Exit codes with the flag on: `0` clean run, `3` completed-but-degraded (report was produced), non-zero others unchanged (hard failures). Same hybrid pattern as `LAST30DAYS_DEBUG` — works shell-exported or in `.env`. + +--- + +## Trend monitoring (`--store` + watchlist + briefings) + +The default behavior - one slug-named file per topic, overwritten on rerun - is the snapshot mode. For continuous monitoring, the repo ships three components most users miss: + +### `--store` flag + +Adding `--store` to any run persists every finding to a SQLite database (default at `~/.local/share/last30days/research.db`). Findings dedupe on the `source_url` column (UNIQUE constraint), so the same URL across runs updates the existing row instead of creating a duplicate. The markdown file still saves; the SQLite is the time-series substrate. + +**Always-on alternative:** set `LAST30DAYS_STORE=1` in your `.env` instead of remembering `--store` on every invocation. The flag still works as before; the env var is purely additive. Same hybrid pattern as `LAST30DAYS_DEBUG` — works whether shell-exported or in `.env`. + +Relevant tables: `topics`, `research_runs`, `findings`, `settings`. Schema: [`scripts/store.py`](skills/last30days/scripts/store.py). + +### `watchlist.py` - recurring topics + +[`scripts/watchlist.py`](skills/last30days/scripts/watchlist.py) manages topics that should be researched on a schedule. Subcommands: `add`, `remove`, `list`, `run-one`, `run-all`, `config`. Built-in delivery to Slack incoming webhooks (`hooks.slack.com/...`) or any HTTPS endpoint, fired only when new findings appear. + +Two-step flow (the watchlist holds the topic; an external scheduler invokes the run): + +```bash +# 1. Add the topic to the watchlist +# Default schedule daily 8am; --weekly switches to Mondays 8am +python3 scripts/watchlist.py add "british airways middle east" --weekly + +# 2. Configure delivery and budget (optional) +python3 scripts/watchlist.py config delivery "https://hooks.slack.com/services/..." +python3 scripts/watchlist.py config budget 5.00 + +# 3. Trigger via cron / Task Scheduler / GitHub Actions +python3 scripts/watchlist.py run-one "british airways middle east" +# or run every enabled topic, gated by daily_budget +python3 scripts/watchlist.py run-all +``` + +The schedule field stored on each topic is metadata - the actual cron / Task Scheduler invocation is your responsibility. Watchlist runs hardcode `--quick` and `--lookback-days 90` when spawning the underlying engine. + +### `briefing.py` - daily / weekly digests + +[`scripts/briefing.py`](skills/last30days/scripts/briefing.py) reads the SQLite store and emits structured data the agent then synthesizes into prose. Modes: `generate` (daily), `generate --weekly`, `show [--date DATE]` (display a saved briefing). Briefs save to `~/.local/share/last30days/briefs/`. + +### Recommended cadence pattern + +| Step | Cadence | Command | +|---|---|---| +| Baseline | one-time per topic | `/last30days "" --days=30 --store` | +| Add to watchlist | one-time per topic | `python3 scripts/watchlist.py add "" --weekly` | +| Recurring run | daily or weekly (external scheduler) | `python3 scripts/watchlist.py run-all` | +| Digest | weekly | `python3 scripts/briefing.py generate --weekly` | + +--- + +## Per-client patterns + +The skill is built to flex around different client environments. Four patterns that compose well: + +**Codex note:** the repository includes `.codex-plugin/plugin.json` so Codex can treat the existing +`skills/last30days/SKILL.md` tree as plugin metadata without maintaining a separate Codex copy. +The Codex marketplace catalog points at the repository root URL: Codex clones the repo, reads the +root `.codex-plugin/plugin.json`, and loads skills from `./skills/`. The Agent Skills install +command documented in the README remains the broadest cross-host path. + +**Grok note:** the repository includes `.grok-plugin/plugin.json` and `.grok-plugin/marketplace.json` +so xAI's Grok Build CLI (`grok`) can install last30days as a native plugin. Grok also reads the +Claude Code manifests for compatibility; the native pair is the first-class lane. The Grok +marketplace catalog uses a bare Git URL source (no commit pin) so `grok plugin marketplace add +mvanhorn/last30days-skill` tracks HEAD — the same pattern as the Codex catalog. `npx skills add` +remains a valid cross-host fallback. + +### 1. Trusted per-client `.claude/last30days.env` + +When each client has its own working directory, drop a `.claude/last30days.env` into the client folder and opt in with `LAST30DAYS_TRUST_PROJECT_CONFIG=1` from your shell or global `~/.config/last30days/.env`. The skill loads the project file only after that trust signal. Typical contents: + +```bash +LAST30DAYS_MEMORY_DIR=C:\Users\\Clients\acme\Research\Last30Days +SCRAPECREATORS_API_KEY= +INCLUDE_SOURCES=tiktok,instagram +BSKY_HANDLE=.bsky.social +``` + +`cd` into the client folder, run `/last30days ` as normal, no wrappers. Combine with `--save-suffix=` per run if you also need to differentiate filenames within that folder. + +### 2. Per-client save dir + suffix wrapper + +For workflows where you don't `cd` into a client folder (running from anywhere, scripted batches), a tiny shell function isolates each client's research without engine changes. + +PowerShell example: + +```powershell +function Run-L30D-Client { + param([string]$ClientSlug, [Parameter(ValueFromRemainingArguments=$true)]$Args) + $env:LAST30DAYS_MEMORY_DIR = "C:\Users\$env:USERNAME\Clients\$ClientSlug\Research\Last30Days" + /last30days @Args --save-suffix=$ClientSlug +} +# Usage: Run-L30D-Client acme "british airways middle east" +``` + +Bash example: + +```bash +l30d-client() { + local client=$1; shift + LAST30DAYS_MEMORY_DIR="$HOME/Clients/$client/Research/Last30Days" \ + /last30days "$@" --save-suffix="$client" +} +# Usage: l30d-client acme "british airways middle east" +``` + +### 3. Custom category-peer subreddits + +[`scripts/lib/categories.py`](skills/last30days/scripts/lib/categories.py) holds a table of `(category_id, trigger_keywords, peer_subreddits)`. If a client lives in a vertical that isn't covered (legal-tech, real-estate-tech, B2B HR SaaS), add a row. Pure data, no logic. + +Section 2a of `SKILL.md` documents the merging rule the skill applies when your topic matches a category. + +### 4. Pre-built `--competitors-plan` JSON + +For competitor-vs-comparisons that recur, a pre-written JSON skeleton per client industry saves real time: + +```json +{ + "Competitor B": { + "x_handle": "competitor_b_handle", + "subreddits": ["sub1", "sub2"], + "github_user": "competitor-b-org", + "context": "Founded 2019, focused on ..." + }, + "Competitor C": { ... } +} +``` + +Pass as `--competitors-plan @client/competitors-plan.json` (or as a string). See `SKILL.md` section "If QUERY_TYPE = COMPARISON" for the full schema. + +--- + +## Beta channel + +Experimental customizations live on a private companion repo (`mvanhorn/last30days-skill-private`) installed as `/last30days-beta`. Never ship beta-only changes to the public marketplace without a review PR against the public repo. Workflow guide: `BETA.md` in the private repo. + +This is the right home for client-specific changes you don't intend to upstream - custom category rows, internal subreddit lists, per-vertical plan templates. + +--- + +## Cross-references + +- The CLI flag surface: `python3 scripts/last30days.py --help` +- The skill contract (voice, LAWs, pre-flight protocol): [`skills/last30days/SKILL.md`](skills/last30days/SKILL.md) +- Shared package vocabulary and engine/harness terminology: [`CONCEPTS.md`](CONCEPTS.md) +- Contributor guidance: [`CONTRIBUTORS.md`](CONTRIBUTORS.md) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md new file mode 100644 index 0000000..54c3457 --- /dev/null +++ b/CONTRIBUTORS.md @@ -0,0 +1,60 @@ +# Contributors + +last30days is built by [@mvanhorn](https://github.com/mvanhorn) with help from the community. + +## v3 Inspiration + +These contributors submitted PRs and issues that directly inspired v3 features. The v3 engine was a ground-up rewrite, so their original code wasn't merged, but their ideas shaped what shipped. + +Want to claim your entry? Submit a PR replacing the placeholder line below your name with your bio, website, or anything you'd like. + +--- + +### @uppinote20 +[PR #143](https://github.com/mvanhorn/last30days-skill/pull/143) - Rich Reddit comments, top 3 per post +v3 ships top comments with upvote counts on every thread. +> _Add your bio, website, or anything you'd like here._ + +### @zerone0x +[Issue #134](https://github.com/mvanhorn/last30days-skill/issues/134) + [PR #136](https://github.com/mvanhorn/last30days-skill/pull/136) - GitHub as a first-class data source +v3 has full GitHub search: issues, PRs, person-mode profiles, project-mode repos with live star counts. +> _Add your bio, website, or anything you'd like here._ + +### @thinkun +[PR #116](https://github.com/mvanhorn/last30days-skill/pull/116) - Resilient Reddit, prevent enrichment timeout from discarding results +v3 has parallel enrichment with per-item timeouts. No results are ever dropped. +> Thinker, technologist, AI expert, music-tinkerer. Founder of [Thinkun](https://thinkun.com). [@thinkun on GitHub](https://github.com/thinkun) · [@unthink on X](https://x.com/unthink) + +### @thomasmktong +[PR #124](https://github.com/mvanhorn/last30days-skill/pull/124) - Pure Python Reddit fallback +v3 Reddit is 100% pure Python with zero external dependencies. +> _Add your bio, website, or anything you'd like here._ + +### @fanispoulinakisai-boop +[Issue #100](https://github.com/mvanhorn/last30days-skill/issues/100) - Reddit timeout report +Drove the timeout resilience work that made v3 Reddit bulletproof. +> _Add your bio, website, or anything you'd like here._ + +### @pejmanjohn +[Issue #78](https://github.com/mvanhorn/last30days-skill/issues/78) - ScrapeCreators silent failures +v3 surfaces all API errors with clear diagnostics instead of silently returning empty results. +> Repping the mighty MI; home of the most cracked agentic engineers. https://github.com/pejmanjohn + +### @zl190 +[PR #115](https://github.com/mvanhorn/last30days-skill/pull/115) - HN trending merge +v3 merges trending and keyword HN results with deduplication for better coverage. +> Healthcare AI engineer. [Blog](https://zl190.github.io/blog) + +### @hnshah +[PR #84](https://github.com/mvanhorn/last30days-skill/pull/84), [#85](https://github.com/mvanhorn/last30days-skill/pull/85), [#86](https://github.com/mvanhorn/last30days-skill/pull/86) - Watchlist delivery, 90-day scanning window, HN/Polymarket storage +v3 has durable watchlist with multi-source storage and extended time windows. +> Hiten Shah. Founder. Builds in public. https://github.com/hnshah + +--- + +## Past Contributors + +- [@23241a6749](https://github.com/23241a6749) - Windows cp1252 fixes ([#549](https://github.com/mvanhorn/last30days-skill/pull/549)); Windows killpg guard ([#552](https://github.com/mvanhorn/last30days-skill/pull/552)); browser promo clarity ([#387](https://github.com/mvanhorn/last30days-skill/pull/561)); setup wizard fix ([#574](https://github.com/mvanhorn/last30days-skill/pull/578)); check-config xargs fix ([#506](https://github.com/mvanhorn/last30days-skill/issues/506)); check-config clean-exit on missing last-run ([#463](https://github.com/mvanhorn/last30days-skill/issues/463)); Firefox multi-profile cookies ([#498](https://github.com/mvanhorn/last30days-skill/issues/498)); X/Twitter CT0 template ([#396](https://github.com/mvanhorn/last30days-skill/issues/396)); .env permission auto-fix ([#573](https://github.com/mvanhorn/last30days-skill/pull/599)); MCP Go tests in CI ([#621](https://github.com/mvanhorn/last30days-skill/issues/621)) +- [@JosephOIbrahim](https://github.com/JosephOIbrahim) - Windows Unicode fix ([#17](https://github.com/mvanhorn/last30days-skill/pull/17)) +- [@levineam](https://github.com/levineam) - Model fallback for unverified orgs ([#16](https://github.com/mvanhorn/last30days-skill/pull/16)) +- [@jonthebeef](https://github.com/jonthebeef) - Early testing and feedback diff --git a/HERMES_SETUP.md b/HERMES_SETUP.md new file mode 100644 index 0000000..2f51eec --- /dev/null +++ b/HERMES_SETUP.md @@ -0,0 +1,115 @@ +# Hermes Setup Guide for last30days + +This guide covers installing last30days on Hermes AI Agent. + +## Prerequisites + +1. **Hermes installed** - See https://github.com/NousResearch/hermes-agent +2. **Python 3.12+** - `brew install python@3.12` or similar +3. **yt-dlp** (optional, for YouTube) - `brew install yt-dlp` + +## Installation + +```bash +hermes skills install mvanhorn/last30days-skill/skills/last30days --force +``` + +The explicit `skills/last30days` path fetches the skill straight from this repo's current default branch and deploys it under `~/.hermes/skills/`. `--force` is required because Hermes's install-time security scanner returns a `caution` verdict for this skill — it flags benign patterns such as reading your own API keys from the environment and calling `subprocess` to run `yt-dlp`/`bird`. `--force` accepts the caution verdict and installs (it also reinstalls over any existing copy). + +**Why the explicit path?** The shorter `hermes skills install mvanhorn/last30days-skill` currently resolves through the skills.sh index, which is serving an older cached snapshot of this repo (from before the skill moved under `skills/last30days/`). Use the explicit `.../skills/last30days` path above until the index re-crawls — tracked in [vercel-labs/skills#1602](https://github.com/vercel-labs/skills/issues/1602). + +### Developer / live-edit alternative + +If you're hacking on the skill locally and want edits to propagate to Hermes without re-installing, symlink your working tree: + +```bash +git clone https://github.com/mvanhorn/last30days-skill.git +mkdir -p ~/.hermes/skills/research +ln -s "$(pwd)/last30days-skill/skills/last30days" ~/.hermes/skills/research/last30days +``` + +## Usage + +In Hermes, invoke with: + +``` +last30days "your research topic" +``` + +Or with options: +``` +last30days "best mechanical keyboards 2025" --search=reddit,youtube +last30days "AI news" --days=7 --deep +``` + +## First Run Setup + +On first run, the skill will guide you through setup: + +1. **Auto setup** (~30 seconds) + - Scans browser cookies for X/Twitter + - Checks/installs yt-dlp for YouTube + - Best-effort install of `digg-pp-cli` for Digg AI-news clusters (via `@mvanhorn/printing-press-library`; binary lands in `$HOME/.local/bin` — ensure your Hermes gateway PATH includes it, or Digg stays off even after install) + - Configures free sources (Reddit, HN, Polymarket) + +2. **Optional: ScrapeCreators** + - Adds TikTok, Instagram, Reddit backup + - 100 free credits (no expiration) + - Sign up at scrapecreators.com + +3. **Optional: API Keys** + - XAI_API_KEY for X/Twitter (alternative to browser cookies) + - BRAVE_API_KEY for web search + +## Available Sources + +### Free (No API Key) +- **Reddit** - Public discussions and comments +- **Hacker News** - Tech discussions via Algolia +- **Polymarket** - Prediction markets +- **YouTube** - Search and transcripts (requires yt-dlp) +- **Digg** - AI-news story clusters (requires `digg-pp-cli` on the agent PATH; auto-installed to `$HOME/.local/bin` during setup when `npx` is available) + +### Requires API Key +- **X/Twitter** - xAI API key or browser cookies +- **TikTok** - ScrapeCreators API +- **Instagram** - ScrapeCreators API +- **Web Search** - Brave Search API + +## Troubleshooting + +### Python not found +```bash +# Find Python 3.12+ +which python3.12 python3.13 python3.14 + +# If not installed +brew install python@3.12 +``` + +### yt-dlp not found +```bash +brew install yt-dlp +# or +pip install yt-dlp +``` + +### Check what's configured +```bash +cd ~/.hermes/skills/research/last30days +python3.12 scripts/last30days.py --diagnose +``` + +## Updating + +```bash +hermes skills install mvanhorn/last30days-skill --force +``` + +If you symlinked your working tree (developer alternative above), just `git pull` in the repo — edits propagate live, no re-install step. + +## Support + +- Original repo: https://github.com/mvanhorn/last30days-skill +- Hermes: https://github.com/mercurial-tf/hermes +- Issues: Please report in the original repo diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..c7d2838 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Matt Van Horn + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..9db4cb5 --- /dev/null +++ b/README.md @@ -0,0 +1,380 @@ +# /last30days + +

+ last30days - an AI agent-led search engine that searches people, not editors +

+ +

+ + GitHub Trending #1 Repository Of The Day + +
+ + mvanhorn/last30days-skill | Trendshift + +

+ +**An AI agent-led search engine scored by upvotes, likes, and real money - not editors.** + +This README tracks the current v3 pipeline. The runtime skill spec lives in [skills/last30days/SKILL.md](skills/last30days/SKILL.md), which is the source of truth for the latest command and setup behavior. + +**Claude Code (recommended — auto-updates via marketplace):** +``` +/plugin marketplace add mvanhorn/last30days-skill +/plugin install last30days +``` + +**Codex, Cursor, Copilot, Gemini CLI, or any of 50+ [Agent Skills](https://agentskills.io) hosts:** +``` +npx skills add mvanhorn/last30days-skill -g +``` +(`-g` installs globally for your user, available across all projects. Drop it to scope per-project.) + +More install options (claude.ai web, OpenClaw, manual) in the [Install](#install) section below. + +Zero config. Reddit, HN, Polymarket, and GitHub work immediately. Run it once and the setup wizard unlocks X, YouTube, TikTok, arXiv, Techmeme, and more in 30 seconds. + +--- + +Reddit upvotes. X likes. YouTube transcripts. TikTok engagement. Polymarket odds backed by real money and insider information. That's millions of people voting with their attention and their wallets every day. /last30days searches all of it in parallel, scores it by what real people actually engage with, and an AI agent judge synthesizes it into one brief. + +Google aggregates editors. /last30days searches people. + +You can't get this search anywhere else because no single AI has access to all of it. Google search doesn't touch Reddit comments or X posts. ChatGPT has a deal with Reddit but can't search X or TikTok. Gemini has YouTube but not Reddit. Claude has none of them natively. Each platform is a walled garden with its own API, its own tokens, its own auth. But you can bring your own keys and browser sessions, and suddenly an AI agent can search all of them at once, score them against each other, and tell you what actually matters. + +That's the unlock. Not one better search engine. A dozen disconnected platforms, bridged by an agent. + +``` +/last30days Peter Steinberger +``` + +You have a meeting tomorrow. You Google them. You get their LinkedIn from 2023. /last30days gives you what they're actually doing this month: joined OpenAI to work on Codex, fighting Anthropic's ban on third-party agents, shipping 23 PRs at 85% merge rate, building "LobsterOS" for cross-device agent control, and r/ClaudeCode hit 569 upvotes debating whether he's a hero or "insufferable." Scattered across X posts, Reddit threads, YouTube transcripts, and GitHub commits. None of it was on Google. + +## Why this exists + +I built it to keep up in AI. Everything changes every day and the Reddit and X nerds are always on top of it first. I needed better prompts, and the training data was always months behind what the community had already figured out. + +But it turned into something bigger. Now I run it before a sales call to know the last 30 days truth about a business. Before a meeting to read someone's recent tweets and podcast transcripts. Before a Disney World trip to know which rides are closed and what the community says about Genie+. Before I build anything to know what problems people are actually hitting. + +If you're meeting with a CEO, have you read all their tweets and YouTube transcripts from the last 30 days? I have. + +## Sources, scored by the people + +| Source | What the people tell you | +|--------|--------------------------| +| **Reddit** | The unfiltered take. Top comments with real upvote counts, free, no API key. The real opinions that Google buries. | +| **X / Twitter** | The hot take, the expert thread, the breaking reaction. First to know, first to argue. | +| **YouTube** | The 45-minute deep dive. Full transcripts searched for the 5 quotable sentences that matter. | +| **TikTok** | The creator reaching 3.6M people with a take you'll never find on Google. | +| **Instagram Reels** | The influencer perspective with spoken-word transcripts. The visual culture signal. | +| **Hacker News** | The developer consensus. 825 points, 899 comments. Where technical people actually argue. | +| **Polymarket** | Not opinions. Odds. Backed by real money. 96% confidence on album sales. 4% on an acquisition. | +| **GitHub** | For people: PR velocity, top repos by stars, release notes. For topics: issues and discussions. | +| **Digg** | Curated story clusters from Digg's AI 1000 leaderboard (~1000 high-signal AI accounts on X), with attributable inline quotes (no X auth required). Auto-enabled when `digg-pp-cli` is on PATH. | +| **arXiv** | The papers behind the hype. New research in the window, free, no API key. Auto-enabled when `arxiv-pp-cli` is on PATH (first-run setup installs it). | +| **Techmeme** | The tech-news editorial layer, date-windowed to your 30 days. Free, no API key. Auto-enabled when `techmeme-pp-cli` is on PATH (first-run setup installs it). | +| **LinkedIn** | The professional signal. Posts and articles, with articles weighted as high signal. | +| **StockTwits** | Trader sentiment. Auto-activates when your topic is a ticker or crypto. | +| **Threads** | The post-Twitter text layer. Conversations from creators and brands. | +| **Pinterest** | Visual discovery. Pins, saves, and comments on products and ideas. | +| **Xiaohongshu (RED)** | Chinese lifestyle, product, and creator signals. Requested explicitly with `--search xhs` when a logged-in x-mcp browser plugin or `xiaohongshu-mcp` service is running locally. | +| **Bluesky** | The decentralized social layer. AT Protocol posts from the post-Twitter migration. | +| **Perplexity** | Grounded Sonar synthesis, raw Search API rows, and Deep Research. | +| **Web** | The editorial coverage, the blog comparisons. One signal of many, not the only one. | + +Community contributors keep adding more. Truth Social and other niche sources are in the engine with more on the way. + +A Reddit thread with 1,500 upvotes is a stronger signal than a blog post nobody read. A TikTok with 3.6M views tells you more about what's culturally relevant than a press release. Polymarket odds backed by $66K in volume are harder to argue with than a pundit's guess. + +The synthesis ranks by what real people actually engaged with. Social relevancy, not SEO relevancy. + +## What people actually use it for + +**Before a meeting.** `/last30days Peter Steinberger` - joined OpenAI's Codex team, fighting Anthropic's ban on third-party agents, 23 PRs merged at 85% merge rate on GitHub, building LobsterOS for cross-device agent control. r/ClaudeCode: "Ever since OpenClaw released, it was widely known that if you run it through anything other than the API, you were gonna get banned eventually" (227 upvotes). That's not on LinkedIn. + +**To read hiring signals.** `/last30days Listen Labs --hiring-signals` - current jobs and careers pages become cited evidence for focus shifts: hiring into enterprise security, customer success, infrastructure, or product expansion. The report says what the hiring appears to signal, not what the roadmap will ship. + +**To find the topic before it peaks.** Ask `/last30days what's exploding in AI agents?` and the skill switches to discovery mode: it sweeps Reddit category listings, Hacker News front/best stories, Digg's AI 1000 feed, and X when authenticated, then returns 5-10 engagement-velocity-ranked topics. Every result includes cross-source numbers, a momentum label, and a ready-to-run `/last30days ""` follow-up. + +**When something drops.** `/last30days Kanye West` - UK blocked his visa, Wireless Festival canceled, sponsors fled. But BULLY debuted #2 on Billboard. Fantano came back from his "Yay sabbatical" to review it (653K views). SoFi Homecoming brought out Lauryn Hill and Travis Scott for 44 songs. Polymarket: "Will Kanye tweet again?" 86% Yes. 23 Reddit threads, 17 YouTube videos, 86K upvotes. + +**To compare tools.** `/last30days OpenClaw vs Hermes vs Paperclip` - "These aren't competitors, they're layers." OpenClaw is the executor (351K GitHub stars, live), Hermes is the self-improving brain (31K stars), Paperclip is the org chart (49K stars). Star counts pulled live from the GitHub API, not stale blog posts. Side-by-side table with architecture, memory, security, best-for. Per @IMJustinBrooke: "OpenClaw = Charmander, Hermes = Charizard." + +**To understand the world.** `/last30days Iran vs USA` - Day 38 of the war. Trump's Tuesday deadline for Iran to reopen the Strait of Hormuz. Two US warplanes downed. Oil at $126/barrel. The IEA called it "the largest supply disruption in the history of the global oil market." Polymarket: ceasefire by Dec 31 at 74%. 27 X posts, 10 YouTube videos, 20 prediction markets. + +**Before a trip.** `/last30days Universal Epic Universe` - Expansion already under construction. "Project 680" permit filed. Fireworks show confirmed by infrastructure but unannounced. Wait times: Mine-Cart Madness averaging 148 minutes. No annual pass yet, and locals are frustrated. Stardust Racers down for refurbishment through April 5. + +**To learn something fast.** `/last30days Nano Banana Pro prompting` - JSON-structured prompts are replacing tag soup. @pictsbyai's nested format prevents "concept bleeding." Edit-first workflow beats regeneration. Then it writes you a production prompt using exactly what the community said works. + +## What's new + +Since the v3.3 announcement in May, as of v3.11.1 (July 2026): 175 merged PRs - 122 of them from 52 community contributors - across 15 releases. This is what landed. + +### First-class on OpenAI Codex + +/last30days is now a native Codex plugin with guided setup - not a port, a first-class citizen. Renderer-aware citations mean Codex output reads like a brief instead of URL soup (#694), and the same engine runs on Claude Code, Cursor, Copilot, Gemini CLI, Claude Desktop, OpenClaw, and 50+ Agent Skills hosts. Codex plugin manifest by [@rfoust](https://github.com/rfoust) (#686), Codex auth fix by [@tmchow](https://github.com/tmchow) (#698). + +### arXiv, Techmeme, and Digg - free, no API keys + +arXiv brings the papers behind the hype and Techmeme brings the editorial tech-news layer - free, zero keys, and first-run setup installs their CLIs so they activate automatically (#709). Digg's AI 1000 story clusters arrive without X auth the same way - setup installs the free Digg CLI for you (#590). Trustpilot ships opt-in for consumer-brand research. + +### Free Reddit grew real scores and top comments + +Reddit's public .json API died; the free path came back stronger. Keyless RSS + shreddit scraping (#457), dedicated-subreddit discovery with real upvote counts via arctic-shift (#696), and a relevance floor so a viral off-topic post can't hijack your brief (#488, thanks [@rzachsmith](https://github.com/rzachsmith)). No API key. Real scores. Top comments included. + +### The best comments in every brief + +Comments are now a default-on layer across sources: Instagram comments with rank-based diversity so five hot takes don't all come from one post (#751), YouTube comments plus a ScrapeCreators transcript backup for when yt-dlp strikes out (#637), and crowd-voted comments weighted into Best Takes so the community's funniest lines survive scoring (#592, #608). + +### One doctor command + +Ask for a health check and the doctor runs every source, then prescribes exact fixes - which key is missing, which CLI is off PATH, which cookie expired (#753). No more guessing why X came back thin. + +### X search, rebuilt + +The X pipeline got a ground-up overhaul: FROM and ABOUT lanes so a person's own posts and the conversation about them both rank (#610), person-aware subquery disambiguation (#611), first-party authorship grounding with interaction-signal ranking (#613), and a single X source with automatic backend failover (#622). Plus an honest `--diagnose` that actually probes auth (#609). + +### More sources joined + +LinkedIn via ScrapeCreators, with articles as high signal ([@ravstr](https://github.com/ravstr), #702). StockTwits auto-activates for ticker and crypto topics ([@wtiwana](https://github.com/wtiwana), #658). Perplexity grew direct API modes and async Deep Research ([@sk-holmes](https://github.com/sk-holmes), #629). + +### Hardened by the community + +The security wave was almost entirely community work: stored-XSS fixes in the HTML renderer ([@iliaal](https://github.com/iliaal), [@aaronjmars](https://github.com/aaronjmars)), locked-down cookie temp files, supply-chain-hardened CI with OpenSSF Scorecard and build provenance attestation ([@shaanmajid](https://github.com/shaanmajid), [@hammadxcm](https://github.com/hammadxcm), [@aniruddh909](https://github.com/aniruddh909)), Semgrep and OSV-Scanner scans plus a PR dependency-review gate ([@23241a6749](https://github.com/23241a6749)), a test-coverage floor introduced at 60% and since raised to 84% ([@gourab5139014](https://github.com/gourab5139014)), and a Hermes security scan cleared of every CRITICAL finding (#768). + +### Reaches further + +Hebrew and non-Latin languages ([@dudyme](https://github.com/dudyme)). CJK-aware tokenization for Chinese sources ([@An-idd](https://github.com/An-idd)). A Windows compatibility wave. Cookie extraction across the full Chromium family - Brave, Edge, Vivaldi, Opera, Arc ([@andrey-esipov](https://github.com/andrey-esipov)) - plus macOS Keychain and Linux pass(1) credential sources. `--as-of` historical lookback ([@chiyi-creator](https://github.com/chiyi-creator)). Auto-provisioned Python 3.12 via uv ([@buntysomroy](https://github.com/buntysomroy)). `--hiring-signals` for reading a company's job pages. Watchlist deltas between runs. + +### Still in the box from v3 + +The v3 foundations are all still here: the pre-research brain that resolves the right handles, subreddits, and hashtags before a single API call fires (built by [@j-sperling](https://github.com/j-sperling)); Best Takes scoring for humor and virality alongside relevance; cross-source cluster merging; single-pass comparisons ("CLI vs MCP" in 3 minutes, not 12); auto-discovered `--competitors` comparisons; GitHub person-mode (`--github-user=steipete`); ELI5 mode ("eli5 on" after any run); and shareable, self-contained HTML briefs (`--emit=html`). Configuration knobs live in [CONFIGURATION.md](CONFIGURATION.md). + +## Install + +| Surface | Install | Updates | +|---------|---------|---------| +| **Claude Code** (recommended) | `/plugin marketplace add mvanhorn/last30days-skill` | Auto via marketplace, or `claude plugin update last30days@last30days-skill` | +| **Grok** (xAI Build CLI) | `grok plugin marketplace add mvanhorn/last30days-skill` then `grok plugin install last30days` | `grok plugin update last30days` | +| **Codex, Cursor, Copilot, Gemini CLI, or any of 50+ [Agent Skills](https://agentskills.io) hosts** | `npx skills add mvanhorn/last30days-skill -g` | `npx skills update last30days -g` | +| **claude.ai** (web) | [Download `last30days.skill`](https://github.com/mvanhorn/last30days-skill/releases/latest/download/last30days.skill) and upload via claude.ai > Customize > Skills > + > Create skill > Upload a skill | Re-download and re-upload | +| **Claude Desktop** | [Download the `.mcpb` for your platform](https://github.com/mvanhorn/last30days-skill/releases/latest) and drag into Settings > Extensions | Re-download and drag the new bundle in | +| **OpenClaw** | `clawhub install last30days-official` | `clawhub update last30days-official` | + +### Claude Code (recommended) + +``` +/plugin marketplace add mvanhorn/last30days-skill +``` + +Recommended because the Claude Code marketplace handles updates for you — the plugin cache is versioned and auto-refreshes when a new release publishes. Run `claude plugin update last30days@last30days-skill` to force a check. + +If you'd rather use the agent-skills install path on Claude Code, that's also supported: + +``` +npx skills add mvanhorn/last30days-skill -g -a claude-code +``` + +The native plugin and the `npx skills` install can coexist. Note that Claude Code does not dedupe across install methods: if you have both the marketplace plugin and the `npx skills` copy active, `/last30days` will show two entries. Use one install method per machine. + +### Grok (xAI Build CLI) + +[Grok Build](https://docs.x.ai/build/features/skills-plugins-marketplaces) (`grok`) installs last30days as a native plugin. Direct install tracks the repository: + +```bash +grok plugin install mvanhorn/last30days-skill +``` + +Or add this repo as a marketplace source, then install by plugin name: + +```bash +grok plugin marketplace add mvanhorn/last30days-skill +grok plugin install last30days +``` + +Add `--trust` to skip the install confirmation. Update with `grok plugin update last30days`. Grok also reads the Claude Code manifests for compatibility; the native `.grok-plugin/` pair is the first-class lane (and what an official [xAI marketplace](https://github.com/xai-org/plugin-marketplace) listing points at). `npx skills add` remains a valid cross-host fallback. + +### Codex, Cursor, Copilot, Gemini CLI, and other Agent Skills hosts + +Install via the open [Agent Skills](https://agentskills.io) CLI — supports 50+ harnesses including `codex`, `cursor`, `github-copilot`, `gemini-cli`, `claude-code`, `windsurf`, `cline`, `continue`, `roo`, `aider-desk`, `opencode`, `goose`, and more (full list on the [vercel-labs/skills repo](https://github.com/vercel-labs/skills)). + +```bash +npx skills add mvanhorn/last30days-skill -g +``` + +The `-g` (global) flag installs to your user directory so the skill is available across all projects. Without `-g`, `npx skills` installs project-locally into `./.skills/` (committed with the repo). For a research-the-world tool, global is what you want. + +Codex desktop and other folder-mode hosts can work in ordinary folders as well as Git repos. Before first research, ask the host agent to run the bundled `scripts/last30days.py --preflight` from the loaded skill directory; in a source checkout, the equivalent command is `python3 skills/last30days/scripts/last30days.py --preflight`. It shows the config source, browser-cookie plan, planned writes, optional commands, and ignored project config without reading cookies, writing files, or running research. + +By default this installs for whichever harness `npx skills` detects. To target a specific one (or multiple): + +```bash +npx skills add mvanhorn/last30days-skill -g -a codex +npx skills add mvanhorn/last30days-skill -g -a cursor +npx skills add mvanhorn/last30days-skill -g -a gemini-cli +npx skills add mvanhorn/last30days-skill -g -a codex -a cursor +``` + +Update later with: + +```bash +npx skills update last30days -g +``` + +Or update everything you've installed globally via `npx skills`: + +```bash +npx skills update -g +``` + +List and remove with `npx skills list -g` and `npx skills remove last30days -g`. + +### claude.ai (web) + +1. [Download `last30days.skill`](https://github.com/mvanhorn/last30days-skill/releases/latest/download/last30days.skill) from the latest release +2. Go to [claude.ai > Customize > Skills](https://claude.ai/customize/skills) +3. Click the `+` button in the Skills panel > click on `Create skill` > `Upload a skill` and browse/drop the file in + +Enable "Code execution and file creation" under Capabilities first — skills won't run without it. + +### Claude Desktop + +Claude Desktop installs `/last30days` as an MCP server via a `.mcpb` bundle (a one-click Model Context Protocol package). + +1. Go to the [latest release](https://github.com/mvanhorn/last30days-skill/releases/latest) and download the `.mcpb` for your platform: + - macOS Apple Silicon: `last30days-pp-mcp-darwin-arm64.mcpb` + - macOS Intel: `last30days-pp-mcp-darwin-amd64.mcpb` + - Linux x86_64: `last30days-pp-mcp-linux-amd64.mcpb` +2. Open Claude Desktop, go to Settings > Extensions, and drag the file in. +3. When prompted, paste API keys for the sources you want to enable. Every field is optional — the engine degrades to web-only mode if you skip them all. Keys are stored in your OS keychain. +4. Restart Claude Desktop. Ask Claude to "research Peter Steinberger" or any topic and it will call the `research` tool. + +**Host requirement:** Python 3.12+ on PATH. The bundle ships the engine source but uses your local Python interpreter. Install from [python.org](https://www.python.org/downloads/) on Windows; macOS and most Linux distros ship a compatible version. + +**Keys don't sync with the Code skill.** Claude Desktop and Claude Code maintain separate credential stores by design. If you already configured `~/.config/last30days/.env` for the Code skill, you'll re-enter the same keys here once. + +Windows support is deferred until per-platform manifest entry points are sorted out; track in a follow-up issue. + +### OpenClaw + +```bash +clawhub install last30days-official +``` + +For X/Twitter action workflows outside `/last30days` research, such as posting +tweets or replies, follower export, media handling, monitors, and giveaway +draws, use [TweetClaw](https://github.com/Xquik-dev/tweetclaw) as the companion +OpenClaw plugin. TweetClaw is maintained by Xquik-dev and is listed only as an +optional companion path, not a last30days dependency or endorsement. + +### Manual (developer) + +```bash +git clone https://github.com/mvanhorn/last30days-skill.git +ln -s "$(pwd)/last30days-skill/skills/last30days" ~/.claude/skills/last30days +``` + +The symlink keeps the install in sync with your working tree as you edit — no re-copy needed. For `claude.ai`, build the `.skill` file from source: `bash skills/last30days/scripts/build-skill.sh` produces `dist/last30days.skill`. + +Reddit (with comments), Hacker News, Polymarket, and GitHub work immediately. Zero configuration. Run `/last30days` once and the setup wizard unlocks more sources in 30 seconds, including the free arXiv and Techmeme CLIs. + +## Bring your own keys + +These platforms don't have relationships with each other. X doesn't know what Reddit thinks. YouTube doesn't see TikTok. But you can bring your own API keys and browser tokens, and suddenly you have access to all of them at once. + +| Sources | What you need | Cost | +|---------|---------------|------| +| Reddit (with comments) + HN + Polymarket + GitHub + StockTwits | Nothing | Free | +| arXiv + Techmeme | Free CLIs, auto-installed by first-run setup | Free | +| X / Twitter | Log into x.com in any browser, or set `XQUIK_API_KEY` / `XAI_API_KEY` | Browser cookies are free; keys are provider-specific | +| YouTube | `brew install yt-dlp` | Free | +| Bluesky | App password from bsky.app | Free | +| TikTok + Instagram + Threads + Pinterest + LinkedIn + YouTube comments | ScrapeCreators key | 10,000 free calls, then PAYG | +| Xiaohongshu (RED) | Run a logged-in x-mcp browser plugin or `xiaohongshu-mcp` service and opt in with `--search xhs` per run or `INCLUDE_SOURCES=xiaohongshu` in `.env`; last30days auto-probes `http://localhost:18060` then `http://host.docker.internal:18060`, or use `XIAOHONGSHU_API_BASE` for a custom URL | No last30days API key; depends on your local browser-session service | +| DripStack (premium financial newsletters) | Opt-in: `--search dripstack` per run, or `INCLUDE_SOURCES=dripstack` in `.env` | No key; free public search API | +| Perplexity Sonar / Search API / Deep Research | Perplexity key, or OpenRouter key as Sonar fallback | Pay as you go | +| Web search | Brave Search key | 2,000 free queries/month | + +### macOS Keychain (optional) + +On macOS you can store keys in the system Keychain instead of a `.env` file. The skill picks them up automatically as the lowest-priority source — `.env` files and process environment still win on collision. + +```bash +# Interactive setup — prompts for each known key, skip with empty input +skills/last30days/scripts/setup-keychain.sh + +# Or store a single key by hand +security add-generic-password -a "$USER" -s last30days-XAI_API_KEY -w "xai-..." + +# Inspect / clean up +skills/last30days/scripts/setup-keychain.sh --list +skills/last30days/scripts/setup-keychain.sh --delete XAI_API_KEY +``` + +Items are stored under service name `last30days-` for the current user. On non-Darwin platforms the loader is a no-op, so there is no behaviour change for Linux/Windows users. + +Already have keys under different Keychain service names? Set the non-secret `LAST30DAYS_KEYCHAIN_ALIASES` mapping described in [CONFIGURATION.md](CONFIGURATION.md#reusing-existing-macos-keychain-items) instead of copying secrets. + +See [CONFIGURATION.md](CONFIGURATION.md) for the full per-source key matrix, reasoning provider priority, and web-search backend priority. + +## Configuration + +Two things you'll likely want to know on day one: + +**Where research files are saved.** `LAST30DAYS_MEMORY_DIR` defaults to `~/Documents/Last30Days/` (Windows: `C:\Users\\Documents\Last30Days\`). Override by setting that env var to any path in your shell, or `--save-dir ` per run. Use `--output ` when you need the rendered result at an exact path, using the format selected by `--emit`. Use `--save-suffix=` to keep multiple variations of the same topic separate (e.g. per client). Each `--save-dir` run produces `-raw[-suffix].md`. Run `python3 skills/last30days/scripts/last30days.py --preflight` to review planned writes before a research run. + +**Structured output for agents and workflows.** Ask `/last30days` for machine-readable JSON to receive the stable, versioned agent profile. For direct engine use in scripts or development, run `python3 skills/last30days/scripts/last30days.py "AI coding agents" --emit=json`; add `--json-profile=raw` only when you need the unversioned internal `Report` dump. See the [JSON export field reference and versioning policy](docs/reference/json-export.md). + +**Topic-less discovery.** Ask `/last30days what's trending in AI agents?` to get a ranked discovery brief instead of researching a topic you already know. For direct engine use in scripts or development, run `python3 skills/last30days/scripts/last30days.py --discover "AI agents"`; add `--emit=json` for the versioned discovery contract. Discovery is mutually exclusive with a positional topic and `--drill`. + +**Trend monitoring across runs.** The default mode produces a fresh markdown snapshot per run. To accumulate findings over time, add `--store` to persist into a SQLite database, then use [`scripts/watchlist.py`](skills/last30days/scripts/watchlist.py) for scheduled runs (with optional Slack / webhook delivery on new findings) and [`scripts/briefing.py`](skills/last30days/scripts/briefing.py) for daily / weekly digests. The full cadence pattern is in [CONFIGURATION.md](CONFIGURATION.md#trend-monitoring-store--watchlist--briefings). + +**A subscribable research library.** Ask `/last30days` to build your library feed, or use `python3 skills/last30days/scripts/last30days.py library feed` directly for scripting and development. It turns saved briefs into `index.html`, a local Atom `feed.xml`, and readable brief pages. Add `--publish` only when you want the HTML index and brief pages hosted; publishing is explicit opt-in and public by default. To make the Atom feed subscribable, host the generated output directory on a static host such as GitHub Pages. + +**Search everything you've researched.** Ask `/last30days search my library for MCP servers` or `/last30days have I researched MCP servers before?`. For direct engine use, run `python3 skills/last30days/scripts/last30days.py library search "MCP servers"`. Search is offline and deterministic: it incrementally indexes the same saved briefs used by the library feed, merges matching per-run store sightings, and groups results by topic and date. Fresh runs also surface a compact **From your library** section when prior research overlaps the current topic; set `LAST30DAYS_LIBRARY_CONTEXT=off` to disable that passive context. + +Per-client wrapper scripts, custom category-peer subreddits, and the experimental beta channel for in-progress customizations are also documented in [CONFIGURATION.md](CONFIGURATION.md). + +## Showcase: community research feeds + +Published a recurring AI update, market watch, or wonderfully narrow obsession with last30days? Share the public library URL—or the Atom URL after hosting `feed.xml` on a static host—in [the community showcase thread](https://github.com/mvanhorn/last30days-skill/issues/532). Community feeds will be linked here as their owners submit them; the thread is the collection point in the meantime. + +## How it works + +1. **You type a topic.** Person, company, product, technology, "X vs Y." Anything. +2. **The agent resolves who matters.** Finds X handles (including founders), GitHub repos, subreddits, TikTok hashtags, YouTube channels. For "Kanye West" it knows r/hiphopheads, @kanyewest, and "bully review" on YouTube. For "OpenClaw" it resolves openclaw/openclaw on GitHub and fetches live star counts. +3. **All sources searched in parallel.** Multi-query expansion. Results scored by engagement, relevance, freshness. +4. **The depth nobody else has.** Full YouTube transcripts from reaction videos. Top Reddit comments with upvote counts. TikTok captions. Polymarket odds. Not just titles and links. +5. **Same story, merged.** Wireless Festival announced on Reddit, discussed on X, ticket prices on TikTok = one cluster, not three separate items. +6. **Synthesized into one brief.** Grounded in specific data. Cited by source. Ranked by what people actually engage with. Not "here's what I found." It's "here's what matters." +7. **Then it becomes your expert.** After one run, your Claude session knows everything the community knows. Ask follow-up questions. Have it write prompts, draft emails, plan trips, architect systems - all grounded in what's real right now. + +## What people are saying + +> "I found a Claude Code skill that researches any topic across Reddit, X, YouTube, and HN from the last 30 days. Then writes the prompts for you. I've been manually searching Reddit and X for research before every piece of content I write. Tab by tab. Thread by thread. That's the part that takes 90 minutes. This eliminates it." -@itsjasonai + +> "This one skill replaced my entire research workflow. You give it a topic, it scrapes Reddit, X, and the web for what people are actually talking about. Not old blog posts. Real conversations from the last 30 days." -@itswilsoncharles + +> "5 of the 10 trending repos on GitHub today are Claude tools. #1: mvanhorn/last30days-skill" -@yieldhunter95 + +## Open source + +MIT license. No tracking. No analytics. Your research stays on your machine. 2,700+ tests. + +Built with Python 3.12+, yt-dlp, Node.js (vendored Bird client for X search), and ScrapeCreators API. v3 engine architecture by [@j-sperling](https://github.com/j-sperling). + +See [CONTRIBUTORS.md](CONTRIBUTORS.md) for the full list of community contributors and [CHANGELOG.md](CHANGELOG.md) for version history. + +## Star History + + + + + + Star History Chart + + + +--- + +**@slashlast30days** · [github.com/mvanhorn/last30days-skill](https://github.com/mvanhorn/last30days-skill) diff --git a/README.wehub.md b/README.wehub.md new file mode 100644 index 0000000..30abb05 --- /dev/null +++ b/README.wehub.md @@ -0,0 +1,7 @@ +# WeHub 来源说明 + +- 原始项目:`mvanhorn/last30days-skill` +- 原始仓库:https://github.com/mvanhorn/last30days-skill +- 导入方式:上游默认分支的最新快照 +- 原作者、版权和许可证信息以原始仓库及本仓库 LICENSE 为准 +- 本文件仅用于记录来源,不代表 WeHub 是原项目作者 diff --git a/docs/how-search-works.md b/docs/how-search-works.md new file mode 100644 index 0000000..3f29382 --- /dev/null +++ b/docs/how-search-works.md @@ -0,0 +1,196 @@ +# How Reddit & X Search Work in last30days + +## Architecture Overview + +``` +User: /last30days "kanye west" + ↓ + ┌─────┴─────┐ + ↓ ↓ (concurrent via ThreadPoolExecutor) + [REDDIT] [X/TWITTER] + ↓ ↓ + OpenAI Bundled Bird or + API xAI API + ↓ ↓ + Parse Parse + ↓ ↓ + Enrich ───┘ + (fetch ↓ + actual [MERGE] + upvotes) ↓ + ↓ [NORMALIZE → FILTER → SCORE → DEDUPE] + └───────────↓ + [OUTPUT to SKILL.md agent] +``` + +Both searches run **in parallel** using Python's `ThreadPoolExecutor(max_workers=2)`. + +--- + +## Reddit Search + +### How it works + +Reddit search uses the **OpenAI Responses API** with the `web_search` tool, domain-filtered to `reddit.com` only. + +**API Call:** +``` +POST https://api.openai.com/v1/responses +Authorization: Bearer {OPENAI_API_KEY} +``` + +**Payload:** +```json +{ + "model": "gpt-5.2", + "tools": [{ + "type": "web_search", + "filters": { "allowed_domains": ["reddit.com"] } + }], + "input": "Search Reddit for threads about {topic}..." +} +``` + +The prompt asks the model to: +1. Extract core subject (strip noise words like "best", "tips", "top") +2. Search 3 patterns: `"{topic} site:reddit.com"`, `"reddit {topic}"`, `"{topic} reddit"` +3. Return JSON with `title`, `url`, `subreddit`, `date`, `relevance` +4. URLs must contain `/r/` AND `/comments/` (real threads only) + +**Model fallback chain:** `gpt-5.2 → gpt-5.1 → gpt-5 → gpt-4.1 → gpt-4o → gpt-4o-mini` +Triggers on HTTP 400/403 with access error keywords. + +### Enrichment (the secret sauce) + +After search, each thread gets **enriched** by hitting Reddit's free JSON API: + +``` +GET https://reddit.com/r/{sub}/comments/{id}/{slug}/.json +``` + +No API key needed. This returns the actual thread data: + +| Data Point | Source | +|---|---| +| Upvotes (score) | Reddit JSON API | +| Comment count | Reddit JSON API | +| Upvote ratio | Reddit JSON API | +| Top 10 comments (text + score) | Reddit JSON API | +| 7 key comment insights | Extracted via heuristics | +| Actual post date | `created_utc` timestamp | + +**This is why Reddit results have real engagement metrics** — the enrichment step fetches actual upvote/comment data, not AI estimates. + +### Depth settings + +| Depth | Threads requested | Timeout | +|---|---|---| +| `--quick` | 15-25 | 90s | +| default | 30-50 | 120s | +| `--deep` | 70-100 | 180s | + +--- + +## X/Twitter Search + +X search has **two backends** — the skill auto-detects which to use. + +### Priority: Bundled Bird (env auth) → xAI API (paid) + +```python +if node_available and AUTH_TOKEN and CT0: + use bundled Bird # Free, popup-free, env-authenticated +elif XAI_API_KEY: + use xAI API # Paid, uses grok-4-1-fast +else: + skip X entirely # No X results +``` + +### Backend 1: xAI API + +**API Call:** +``` +POST https://api.x.ai/v1/responses +Authorization: Bearer {XAI_API_KEY} +``` + +**Payload:** +```json +{ + "model": "grok-4-1-fast", + "tools": [{ "type": "x_search" }], + "input": "Search X for posts about {topic} from {from_date} to {to_date}..." +} +``` + +The prompt asks grok to return JSON with: +- `text`, `url`, `author_handle`, `date` +- `engagement`: `{ likes, reposts, replies, quotes }` +- `why_relevant`, `relevance` score + +**Engagement data comes from grok's x_search tool** - it has direct access to X's data. + +### Backend 2: Bundled Bird client (free alternative) + +The repo vendors a search-only subset of Bird's Twitter GraphQL client and shells out to it with Node.js. No global `bird` install is required. The Python wrapper passes `AUTH_TOKEN` and `CT0` via env, which keeps normal local runs headless and avoids browser-cookie prompts. + +**Bundled Bird returns raw X API data** - likes, reposts, replies are real engagement metrics from X's API, not estimates. + +| Metric | Bundled Bird | xAI API | +|---|---|---| +| Post text | Real | Real | +| Likes/reposts | Real (X API) | Real (x_search tool) | +| Replies/quotes | Real | Real | +| Author handle | Real | Real | +| Relevance score | Default 0.7 (re-ranked by relevance.py) | AI-assessed 0.0-1.0 | + +### Depth settings + +| Depth | xAI posts | Bundled Bird results | xAI timeout | Bird timeout | +|---|---|---|---|---| +| `--quick` | 8-12 | 12 | 90s | 30s | +| default | 20-30 | 30 | 120s | 45s | +| `--deep` | 40-60 | 60 | 180s | 60s | + +--- + +## Post-Processing (both sources) + +After both searches complete: + +1. **Normalize** — consistent formatting, timezone handling +2. **Date filter** — hard filter to requested date range +3. **Score** — relevance scoring (engagement-weighted) +4. **Sort** — highest scores first +5. **Deduplicate** — remove duplicate URLs +6. **Fallback** — if all items filtered out, keep top 3 by relevance + +--- + +## Error Handling + +| Layer | Strategy | +|---|---| +| HTTP requests | 3 retries with exponential backoff (1s → 2s → 3s) | +| Model access errors | Automatic fallback to next model in chain | +| Reddit enrichment | Per-item try/catch; keeps unenriched item on failure | +| X source detection | Silent fallback from Bird → xAI → skip | +| Overall pipeline | Errors stored as `reddit_error`/`x_error`, shown to user | + +--- + +## Key Files + +| File | Purpose | +|---|---| +| `skills/last30days/scripts/last30days.py` | Main CLI entry point | +| `skills/last30days/scripts/lib/pipeline.py` | Multi-source retrieval orchestration | +| `skills/last30days/scripts/lib/reddit_public.py` | Reddit public JSON search | +| `skills/last30days/scripts/lib/reddit_enrich.py` | Fetch real engagement data from Reddit JSON API | +| `skills/last30days/scripts/lib/xai_x.py` | X search via xAI API | +| `skills/last30days/scripts/lib/bird_x.py` | X search via bundled Bird client (free) | +| `skills/last30days/scripts/lib/providers.py` | Reasoning provider and model selection | +| `skills/last30days/scripts/lib/env.py` | API key loading, source detection | +| `skills/last30days/scripts/lib/http.py` | HTTP transport with retries | +| `skills/last30days/scripts/lib/relevance.py` | Query matching and relevance scoring | +| `skills/last30days/scripts/lib/dedupe.py` | URL-based deduplication | diff --git a/docs/pr-credits.md b/docs/pr-credits.md new file mode 100644 index 0000000..3e24a9e --- /dev/null +++ b/docs/pr-credits.md @@ -0,0 +1,33 @@ +# PR Credits — Thank After V2 Goes Live + +When V2 is pushed to the public repo, comment on each PR to thank the contributor and let them know their work was integrated. + +## Integrated (cherry-picked into V2) + +| PR | Author | What | Status | +|---|---|---|---| +| [#17](https://github.com/mvanhorn/last30days-skill/pull/17) | **@JosephOIbrahim** | Windows Unicode fix (cp1252 emoji crash) | Merge or close with thanks | +| [#16](https://github.com/mvanhorn/last30days-skill/pull/16) | **@levineam** | Handle 403 model access errors + gpt-4.1 fallback | Merge or close with thanks | +| [#18](https://github.com/mvanhorn/last30days-skill/pull/18) | **@jonthebeef** | `--days=N` configurable lookback flag | Merge or close with thanks | +| [#1](https://github.com/mvanhorn/last30days-skill/pull/1) | **@galligan** (Matt Galligan) | Marketplace plugin conversion — we took a lighter approach inspired by his PR | Close with thanks, explain lighter approach | + +## Already Fixed in V2 (close with thanks) + +| PR | Author | What | +|---|---|---| +| [#15](https://github.com/mvanhorn/last30days-skill/pull/15) | **@rszrszrsz** | YAML argument-hint fix — already fixed in V2 | +| [#11](https://github.com/mvanhorn/last30days-skill/pull/11) | **@nerveband** | Same YAML fix (earlier) — already fixed in V2 | + +## Not Integrated (close with explanation) + +| PR | Author | What | Why | +|---|---|---|---| +| [#5](https://github.com/mvanhorn/last30days-skill/pull/5) | **@jblwilliams** | Codex auth with OpenAI Responses API | Good idea, too complex for now (358 lines SSE/JWT). May revisit. | +| [#14](https://github.com/mvanhorn/last30days-skill/pull/14) | **@thangman1** | WebSearch-first, API keys optional | Philosophical shift — V2 already does WebSearch in parallel | +| [#10](https://github.com/mvanhorn/last30days-skill/pull/10) | **@thetechreviewer** | OpenRouter API integration | Too large (1029 lines), adds MCP server | + +## Suggested Comment Template + +> Thanks for this PR! We integrated your [fix/feature] into V2 (commit XXXXX). Really appreciate the contribution. 🙏 +> +> Closing this PR since the changes are now in main via a different commit, but full credit to you for the idea and implementation. diff --git a/docs/reference/eval.md b/docs/reference/eval.md new file mode 100644 index 0000000..3b7c0b0 --- /dev/null +++ b/docs/reference/eval.md @@ -0,0 +1,87 @@ +# Research-quality eval harness + +The eval suite measures the quality properties that ordinary unit tests do not: whether ranked evidence is grounded in retrieved inputs, stays inside the requested window, forms coherent clusters, accounts for every usable fixture source, and remains deterministic. + +It runs the production pipeline offline. Recorded HTTP exchanges replay at `lib/http.py`; CLI-backed adapters such as yt-dlp, Digg, arXiv, Techmeme, and Trustpilot replay their parsed result at the source-module seam. Planning is supplied by each fixture manifest, and normalization, date filtering, scoring, fusion, clustering, source outcomes, and the versioned agent JSON export all run normally. The harness never calls an LLM or the network. + +## Run it + +From the repository root: + +```bash +uv run pytest tests/eval -x -s +``` + +The `-s` keeps the score table visible. To print only the scored run and return a nonzero exit when a floor is missed: + +```bash +uv run python tests/eval/harness.py +``` + +CI runs the pytest command in the `eval` job of `.github/workflows/validate.yml`, so every pull request gets a score table and a hard baseline check. + +## Metrics + +| Metric | Deterministic definition | +|---|---| +| Citation grounding | Fraction of exported result URLs that occur in the recorded fixture inputs. | +| Recency compliance | Fraction of ranked source items whose known publication date is inside the report's inclusive date window. Undated evidence is not falsely classified as stale. | +| Cluster coherence | Fraction of within-cluster candidate pairs meeting the production entity-overlap threshold (`0.45`). Singleton clusters are coherent by definition. | +| Coverage | Fraction of fixture sources represented by usable report items or an explicit `Report.source_status` outcome. | +| Determinism | `schema.to_dict()` equality for two runs with fixed time and identical recorded inputs. | + +Aggregate floors live in `tests/eval/baseline.json`. The fixture matrix covers a tech product, a person, a comparison, breaking events, a niche technical topic, and a non-English CJK topic. + +## Add or refresh a fixture + +Fixture directories contain: + +- `manifest.json`: topic archetype, fixed `as_of_date`, sources, safe dummy config, and a deterministic external query plan. +- `http.json`: scrubbed HTTP exchanges and any CLI-backed source exchanges. + +Use the direct engine invocation below only for development/fixture capture; `/last30days ` remains the product interface: + +```bash +python3 skills/last30days/scripts/last30days.py \ + "" \ + --quick \ + --as-of 2026-07-10 \ + --search grounding,hackernews \ + --plan /tmp/eval-plan.json \ + --record-fixtures tests/eval/fixtures/ +``` + +`--record-fixtures` is intentionally hidden from `--help`. It records the live run's shared HTTP traffic and the bounded CLI-adapter seams, scrubs credential-shaped query/body/response fields, and writes `http.json`. It does not create the manifest because archetype, fixed date, source contract, and query plan are review decisions. + +Before committing a recording: + +1. Inspect `http.json` for cookies, keys, tokens, personal identifiers, and unnecessary long bodies. +2. Truncate content to the smallest structure that exercises the adapter and pipeline. +3. Replace irrelevant real usernames with obvious fixture identities. +4. Add the manifest and run both commands above with networking unavailable. + +The replay is fail-closed: an unrecorded request or an unused recorded exchange fails the run. + +## Fixture flags + +- `expects_clusters` (bool): fixtures whose topic historically forms multi-member clusters set this true; if cluster formation regresses to singletons on such a fixture, coherence scores 0.0 instead of a vacuous 1.0. Sparse topics (niche, non-english-cjk, tech-product) set it false because singletons are their legitimate shape. +- Post-ranking enrichment (YouTube transcripts, Digg posts) is recorded and replayed by merging recorded `metadata` onto freshly computed items by item_id, so normalization/scoring/dedupe regressions stay visible to the eval rather than being overwritten by fixture state. +- Post-rerank GitHub star enrichment records its repo->stars map and replays via `github.apply_star_map`, keeping runs offline even when `GITHUB_TOKEN` is set in CI. GitHub project-mode (`--github-repo`) and person-mode (`--github-user`) runs are not yet fixture-recordable; the network guard fails loudly if a fixture attempts them. + +## Known seams + +- Module-backed sources (yt-dlp, digg-pp-cli and other CLI adapters) record post-parse items at the module boundary, so replay does not re-exercise their parsing/normalization code the way HTTP-backed sources do (those replay raw responses through the real pipeline). A normalization regression in a module adapter is covered by that adapter's unit tests, not the eval. Recording raw CLI stdout is a possible future upgrade. +- Cluster coherence shares `entity_extract` with production clustering. The pinned-predicate test (`test_entity_overlap_predicate_pinned`) guards against the shared predicate drifting permissive, and per-fixture floors in baseline.json catch a single archetype collapsing even when the cross-fixture average stays green. + +## Move a baseline + +Baseline edits are explicit quality-policy changes, not snapshot refreshes. Move a floor only when an intentional product change makes the old threshold invalid or when a new fixture legitimately changes the measured distribution. + +Include in the review: + +1. The old and new score tables. +2. The reason the metric changed. +3. A focused test proving the intended behavior. +4. An explanation for any lower floor; never lower a floor solely to make CI green. + +`test_intentional_out_of_window_regression_fails_recency_floor` is the standing negative control: it injects stale ranked evidence and proves the baseline check detects the regression. diff --git a/docs/reference/json-export.md b/docs/reference/json-export.md new file mode 100644 index 0000000..e1b7729 --- /dev/null +++ b/docs/reference/json-export.md @@ -0,0 +1,132 @@ +# Agent JSON export + +The agent JSON profile is the stable machine-readable research contract for downstream agents, scripts, dashboards, and workflow tools. Ask the slash command for machine-readable JSON: + +```text +/last30days AI coding agents — return the versioned agent JSON export +``` + +For direct engine use in scripts, cron jobs, or development, use: + +```bash +python3 skills/last30days/scripts/last30days.py "AI coding agents" --emit=json +python3 skills/last30days/scripts/last30days.py "AI coding agents" --emit=json --output results.json +``` + +`--emit=json` defaults to `--json-profile=agent`. The full internal report remains available for debugging and power users: + +```bash +python3 skills/last30days/scripts/last30days.py "AI coding agents" --emit=json --json-profile=raw +``` + +The raw profile is intentionally unversioned and may change when pipeline internals change. It preserves the JSON serialization used before the agent profile was introduced. + +### Local corpus privacy + +Evidence from `--corpus` / `LAST30DAYS_CORPUS_DIRS` is excluded from the versioned agent profile by default. The exclusion removes corpus results, corpus-only clusters, corpus source outcomes, freshness verdicts, and titles derived from a corpus representative. Set `LAST30DAYS_CORPUS_IN_EXPORT=1` only for a run whose JSON is intentionally allowed to contain local file contents. This opt-in does not change the schema shape or version; it permits `source: "corpus"` entries in the existing result fields. The unversioned `raw` profile is a complete local debug dump and may contain corpus paths and text. + +## Discovery export + +Discovery mode has a separate versioned contract so its topic results do not change the normal research export: + +```bash +python3 skills/last30days/scripts/last30days.py --discover "AI agents" --emit=json +``` + +Its top level contains `schema_version` (`1.0`), `kind` (`"discovery"`), `domain`, `generated_at`, `window_days`, `source_status`, `feeds`, `results`, and `warnings`. Each ranked result contains `rank`, `topic`, `why_spiking`, `momentum` (`new-this-week` or `building`), `velocity_score`, `sources`, per-source native `engagement`, a ready-to-run `command`, and `evidence_urls`. The discovery contract follows the same versioning policy below but evolves independently of the normal agent export. `--json-profile=raw` returns the unversioned internal `DiscoveryReport` dataclass instead. + +When `LAST30DAYS_API_KEY` and `LAST30DAYS_API_BASE` route a run through a configured remote API, the server does not return the local `Report` needed to build this profile. In that mode, `--json-profile=agent` exits with status 2 instead of emitting a misleading shape; use `--json-profile=raw` to retain the remote backend's existing server-response JSON contract. + +## Top-level fields + +| Field | Type | Meaning | +| --- | --- | --- | +| `schema_version` | string | Agent export contract version. The current version is `1.2`. | +| `query` | string | The research topic supplied to the engine. | +| `generated_at` | string | UTC generation timestamp in RFC 3339 format. | +| `window_days` | integer | Number of days between the report's start and end dates. | +| `source_status` | object | Map of source name to the outcome observed during this run. | +| `freshness_verdicts` | array | Per-claim act-time verdicts produced by `--verify-freshness`; empty when verification was not requested or no conservative claims were extractable. | +| `clusters` | array | Ranked groups of related results. | +| `results` | array | Ranked, flat evidence results for downstream processing. | + +All top-level fields are always present. Empty runs contain empty `clusters` and `results` arrays. Sources appear in `source_status` when the run recorded an outcome for them. + +## `freshness_verdicts` + +Each entry identifies the grounded claim and candidate, its primary source item, the typed `verdict` (`current`, `stale`, `contradicted`, or `unsupported`), the original and re-derived values when applicable, and source/evidence URLs and timestamps. `stale` means a successful point re-fetch returned a moved value; `contradicted` means a newer item in the report window explicitly disagrees; `unsupported` means the datum could not be re-checked, including degraded `source_status` outcomes. Consumers can gate actions on `verdict == "current"` without treating an unreachable source as evidence that a claim moved. + +## `source_status` + +Each value distinguishes a clean empty result from incomplete coverage: + +| State | Meaning | +| --- | --- | +| `ok` | The source completed and returned one or more items. | +| `no-results` | The source completed successfully but found no matching items. | +| `partial` | The source returned some items before a later failure. | +| `rate-limited` | Retrieval was stopped by a provider rate limit. | +| `auth-failed` | Credentials were missing, rejected, or expired during retrieval. | +| `unreachable` | The source or network endpoint could not be reached. | +| `timeout` | Retrieval exceeded its time limit. | +| `schema-drift` | The provider response no longer matched the expected shape. | +| `skipped-unconfigured` | The source was intentionally skipped because required configuration was absent. | +| `error` | Retrieval failed for another reason. | + +Consumers must not interpret failure states as evidence that a source had no discussion. Only `no-results` means the source completed cleanly with zero matches. + +## Cluster fields + +| Field | Type | Meaning | +| --- | --- | --- | +| `title` | string | Cluster headline. | +| `summary` | string | Summary from the cluster's representative ranked result. | +| `sources` | array of strings | Sources represented by the cluster. | +| `engagement_total` | number | Sum of one headline native engagement counter per result. Known sources use their primary count (for example, Digg uses `postCount`); otherwise the largest counter-like field is used. Ranking, ratio, rating, and computed-score metadata are excluded. | + +Cluster array order is ranking order. A result's `cluster` value is the zero-based index into this array. + +## Result fields + +| Field | Type | Meaning | +| --- | --- | --- | +| `candidate_id` | string | Stable identifier joining this result to `freshness_verdicts[].candidate_id`. Added in `1.2`. | +| `title` | string | Result title. | +| `source` | string | Primary source name, such as `reddit`, `x`, `youtube`, or `grounding`. | +| `url` | string | Canonical result URL. It may be empty when the provider supplies no link. | +| `published_at` | string | Primary source item's publication date or timestamp. Omitted when unknown. | +| `summary` | string | Normalized snippet, with the relevance explanation or body used as fallback. | +| `engagement` | object | Native engagement counters from the primary source item, such as Reddit `score` and `num_comments` or X `likes` and `reposts`. | +| `relevance_score` | number | Engine final score normalized to the inclusive `0.0`–`1.0` range. | +| `cluster` | integer | Zero-based index into `clusters`. Omitted when the result is not assigned to a cluster. | + +Fields whose value is unknown are omitted rather than emitted as JSON `null`. Strings and collection fields otherwise remain present, including empty strings, objects, or arrays. + +## Comparison runs + +Comparison queries use an envelope so each entity keeps its own contract: + +```json +{ + "schema_version": "1.2", + "comparison": true, + "entities": ["OpenAI", "Anthropic"], + "reports": [ + {"entity": "OpenAI", "report": {"schema_version": "1.2", "query": "OpenAI"}}, + {"entity": "Anthropic", "report": {"schema_version": "1.2", "query": "Anthropic"}} + ] +} +``` + +The abbreviated reports above only illustrate the envelope; real reports contain every documented top-level field. + +## Versioning policy + +- `schema_version` uses `major.minor` numbering. +- Any breaking field removal, rename, type change, semantic change, or envelope change requires a major-version bump. +- Backward-compatible field additions may use a minor-version bump. Consumers should ignore fields they do not recognize. +- The checked-in golden snapshot test locks the complete current shape. Contract changes must update the version and snapshot deliberately. +- `1.2` added `candidate_id` to each `results` entry so verdicts can be joined to the result they annotate. +- `--json-profile=raw` is outside this compatibility policy because it mirrors internal pipeline dataclasses. + +`--preflight --emit=json` is a different machine contract for permission and configuration inspection. `--json-profile` does not alter preflight output. diff --git a/docs/reference/old-nux-wizard-v3.0.0.md b/docs/reference/old-nux-wizard-v3.0.0.md new file mode 100644 index 0000000..c33ff8c --- /dev/null +++ b/docs/reference/old-nux-wizard-v3.0.0.md @@ -0,0 +1,205 @@ +# Original v3.0.0 First-Run NUX Wizard (reference capture) + +Captured verbatim from `SKILL.md` at git commit `0a9ff16` (v3.0.0, 2026-04-08), +the first-run setup wizard Matt built. Preserved here for provenance and as the +source for the restored modal NUX (see docs/plans/2026-06-22-001-feat-restore-nux-wizard-plan.md). +This is a historical snapshot - the live wizard in SKILL.md Step 0 uses the CURRENT +source inventory (Digg, youtube_comments, SC backups) and omits Threads/Pinterest. + +```markdown +## Step 0: First-Run Setup Wizard + +**CRITICAL: ALWAYS execute Step 0 BEFORE Step 1, even if the user provided a topic.** If the user typed `/last30days Mercer Island`, you MUST check for FIRST_RUN and present the wizard BEFORE running research. The topic "Mercer Island" is preserved — research runs immediately after the wizard completes. Do NOT skip the wizard because a topic was provided. The wizard takes 10 seconds and only runs once ever. + +To detect first run: check if `~/.config/last30days/.env` exists. If it does NOT exist, this is a first run. **Do NOT run any Bash commands or show any command output to detect this — just check the file existence silently.** If the file exists and contains `SETUP_COMPLETE=true`, skip this section **silently** and proceed to Step 1. **Do NOT say "Setup is complete" or any other status message — just move on.** The user doesn't need to be told setup is done every time they run the skill. + +**When first run is detected, detect your platform first:** + +**If you do NOT have WebSearch capability (OpenClaw, Codex, raw CLI):** Run the OpenClaw setup flow below. +**If you DO have WebSearch (Claude Code):** Run the standard setup flow below. + +--- + +### OpenClaw / Non-WebSearch Setup Flow + +Run environment detection first: +```bash +python3 "${SKILL_ROOT}/scripts/last30days.py" setup --openclaw +``` + +Read the JSON output. It tells you what's already configured. Display a status summary: + +``` +👋 Welcome to /last30days! + +Detected: +{✅ or ❌} yt-dlp (YouTube search) +{✅ or ❌} X/Twitter ({method} configured) +{✅ or ❌} ScrapeCreators (TikTok, Instagram, Reddit backup) +{✅ or ❌} Web search ({backend} configured) +``` + +Then for each missing item, offer setup in priority order: + +1. **ScrapeCreators** (if not configured): "ScrapeCreators adds TikTok and Instagram search (plus a Reddit backup if public Reddit gets rate-limited). 10,000 free calls, no credit card. (No referrals, no kickbacks - we don't get a cut.)" + - Option A: "ScrapeCreators via GitHub (recommended)" -- Check if `gh` CLI was detected in the environment detection output above. If gh IS detected: description should say "Registers directly via GitHub CLI in ~2 seconds - no browser needed". Before running the command, display: "Registering via GitHub CLI..." If gh is NOT detected: description should say "Copies a one-time code to your clipboard and opens GitHub to authorize". Before running the command, display: "I'll copy a one-time code to your clipboard and open GitHub. When GitHub asks for a device code, just paste (Cmd+V / Ctrl+V)." Then run `python3 "${SKILL_ROOT}/scripts/last30days.py" setup --github`, parse JSON output. Tries PAT first (if `gh` is installed), falls back to device flow which copies a one-time code to your clipboard and opens your browser. If `status` is `success`, write `SCRAPECREATORS_API_KEY={api_key}` to .env. + - Option B: "I have a key" -- accept paste, write to .env + - Option C: "Skip for now" + +2. **X/Twitter** (if not configured): "X search finds tweets and conversations. To unlock X: add FROM_BROWSER=auto (reads browser cookies, free), XAI_API_KEY (no browser access, api.x.ai), or AUTH_TOKEN+CT0 (manual cookies)." + - Option A: "I have an xAI API key" (recommended for servers -- persistent, no expiry). Write XAI_API_KEY to .env. + - Option B: "I have AUTH_TOKEN + CT0 from my browser" -- accept both, write to .env + - Option C: "Skip for now" + +3. **YouTube** (if yt-dlp not found): "YouTube search needs yt-dlp. Run: `pip install yt-dlp`" + +4. **Web search** (if no Brave/Exa/Serper key): "A web search key enables smarter results. Brave Search is free for 2,000 queries/month at brave.com/search/api" + +After setup, write `SETUP_COMPLETE=true` to .env and proceed to research. + +**Skip to "END OF FIRST-RUN WIZARD" below after completing the OpenClaw flow.** + +--- + +### Claude Code Setup Flow (Standard) + +**You MUST follow these steps IN ORDER. Do NOT skip ahead to the topic picker or research. The sequence is: (1) welcome text -> (2) setup modal -> (3) run setup if chosen -> (4) optional ScrapeCreators modal -> (5) topic picker. You MUST start at step 1.** + +**Step 1: Display the following welcome text ONCE as a normal message (not blockquoted). Then IMMEDIATELY call AskUserQuestion - do NOT repeat any of the welcome text inside the AskUserQuestion call.** + +Welcome to /last30days! + +I research any topic across Reddit, X, YouTube, and other sources - synthesizing what people are actually saying right now. + +Auto setup gives you 5 core sources for free in 30 seconds: +- X/Twitter - reads your x.com browser cookies to authenticate (not saved to disk). Chrome on macOS will prompt for Keychain access. +- Reddit with comments - public JSON, no API key needed +- YouTube search + transcripts - installs yt-dlp (open source, 190K+ GitHub stars) +- Hacker News + Polymarket + GitHub (if `gh` CLI installed) - always on, zero config + +Want TikTok and Instagram too? ScrapeCreators adds those (10,000 free calls, scrapecreators.com). No kickbacks, no affiliation. + +**Then call AskUserQuestion with ONLY this question and these options - no additional text:** + +Question: "How would you like to set up?" +Options: +- "Auto setup (~30 seconds) - scans browser cookies for X + installs yt-dlp for YouTube" +- "Manual setup - show me what to configure" +- "Skip for now - Reddit (with comments), HN, Polymarket, GitHub (if gh installed), Web" + +**If the user picks 1 (Auto setup):** + +**Before running the setup command, get cookie consent:** + +Check if `BROWSER_CONSENT=true` already exists in `~/.config/last30days/.env`. If it does, skip the consent prompt and run setup directly. + +If `BROWSER_CONSENT=true` is NOT present, **call AskUserQuestion:** +Question: "Auto setup will scan your browser for x.com cookies to authenticate X search. Cookies are read live, not saved to disk. Chrome on macOS will prompt for Keychain access. OK to proceed?" +Options: +- "Yes, scan my cookies for X" - Run setup as normal. Append `BROWSER_CONSENT=true` to .env after setup completes. +- "Skip X, just set up YouTube" - Run setup with YouTube only (install yt-dlp). Do not scan cookies. +- "I have an xAI API key instead" - Ask them to paste it, write XAI_API_KEY to .env. Then install yt-dlp. + +Run the setup subcommand: +```bash +cd {SKILL_DIR} && python3 scripts/last30days.py setup +``` +Show the user the results (what cookies were found, whether yt-dlp was installed). + +**Then show the optional ScrapeCreators offer (plain text, then modal):** + +Want TikTok and Instagram too? ScrapeCreators adds those platforms - 10,000 free calls, no credit card. It also serves as a Reddit backup if public Reddit ever gets rate-limited. + +**Before showing the ScrapeCreators modal, check for `gh` CLI:** Run `which gh` via Bash silently. Store the result as gh_available (true if found, false if not). + +**Call AskUserQuestion:** +Question: "Want to add TikTok, Instagram, and Reddit backup via ScrapeCreators? (We don't get a cut.)" +Options: +- "ScrapeCreators via GitHub (fastest, recommended)" - If gh_available: description should say "Registers directly via GitHub CLI in ~2 seconds - no browser needed". If NOT gh_available: description should say "Copies a one-time code to your clipboard and opens GitHub to authorize". After the user selects this option: If gh_available, display "Registering via GitHub CLI..." before running the command. If NOT gh_available, display "I'll copy a one-time code to your clipboard and open GitHub. When GitHub asks for a device code, just paste (Cmd+V on Mac, Ctrl+V on Windows/Linux)." Then run `cd {SKILL_DIR} && python3 scripts/last30days.py setup --github` via Bash with a 5-minute timeout. This tries PAT auth first (if `gh` CLI is installed, zero browser needed), then falls back to GitHub device flow which copies a one-time code to your clipboard and opens GitHub in your browser. Parse the JSON stdout. If `status` is `success`, write `SCRAPECREATORS_API_KEY={api_key}` to `~/.config/last30days/.env`. If `method` is `pat`, show: "You're in! Registered via GitHub CLI - zero browser needed. 10,000 free calls. TikTok, Instagram, and Reddit backup are now active." If `method` is `device` and `clipboard_ok` is true, show: "You're in! (The authorization code was copied to your clipboard automatically.) 10,000 free calls. TikTok, Instagram, and Reddit backup are now active." If `method` is `device` and `clipboard_ok` is false, show: "You're in! 10,000 free calls. TikTok, Instagram, and Reddit backup are now active." If `status` is `timeout` or `error`, show: "GitHub auth didn't complete. No worries - you can sign up at scrapecreators.com instead or try again later." Then offer the web signup option. +- "Open scrapecreators.com (Google sign-in)" - run `open https://scrapecreators.com` via Bash to open in the user's browser. Then ask them to paste the API key they get. When they paste it, write SCRAPECREATORS_API_KEY={key} to ~/.config/last30days/.env +- "I have a key" - accept the key, write to .env +- "Skip for now" - proceed without ScrapeCreators + +**After SC key is saved (not if skipped), show the TikTok/Instagram opt-in:** + +Your ScrapeCreators key powers TikTok, Instagram, Threads, Pinterest, and YouTube comments. Want those on for every research run? (Each additional source uses a ScrapeCreators call per search.) + +**Call AskUserQuestion:** +Question: "Which ScrapeCreators sources do you want on?" +Options: +- "TikTok + Instagram (recommended)" - append `INCLUDE_SOURCES=tiktok,instagram` to ~/.config/last30days/.env. Confirm: "TikTok and Instagram are on, plus Reddit backup if public Reddit has issues. You can add threads, pinterest, youtube_comments to INCLUDE_SOURCES anytime." +- "Everything - TikTok, Instagram, Threads, Pinterest, YouTube comments" - append `INCLUDE_SOURCES=tiktok,instagram,threads,pinterest,youtube_comments` to ~/.config/last30days/.env. Confirm: "All ScrapeCreators sources are on." +- "Just the basics - let's run our first search" - don't write the flag. Confirm: "Got it. ScrapeCreators will serve as Reddit backup. You can add sources to INCLUDE_SOURCES in your .env anytime." + +**After TikTok/Instagram opt-in (or SC skip), show the first research topic modal:** + +**Call AskUserQuestion:** +Question: "What do you want to research first?" +Options: +- "Claude Code vs Codex" - tech comparison +- "Sam Altman" - person in the news +- "Warriors Basketball" - sports +- "AI Legal Prompting Techniques" - niche/professional +- "Type my own topic" + +If user picks an example, run research with that topic. If they pick "Type my own", ask them what they want to research. If the user originally provided a topic with the command (e.g., `/last30days Mercer Island`), skip this modal and use their topic directly. + +**END OF FIRST-RUN WIZARD. Everything above in Step 0 ONLY runs on first run. If SETUP_COMPLETE=true exists in .env, skip ALL of Step 0 — no welcome, no setup, no ScrapeCreators modal, no topic picker. Go directly to Step 1 (Parse User Intent). The topic picker is ONLY for first-time users who haven't run /last30days before.** + +**If the user picks 2 (Manual setup):** +Show them this guide (present as plain text, not blockquoted): + +The magic of /last30days is Reddit comments + X posts together - and both are free. Here's how to unlock each source. + +Add these to `~/.config/last30days/.env`: + +X/Twitter (pick one - this is the most important): +- `FROM_BROWSER=auto` - free. Reads your x.com login cookies at search time to authenticate. Cookies are read live each run, not saved to disk. Chrome on macOS will prompt for Keychain access the first time. Firefox and Safari don't. +- `XAI_API_KEY=xxx` - no browser access needed. Get a key at api.x.ai. Best for servers or if you don't want cookie scanning. +- `AUTH_TOKEN=xxx` + `CT0=xxx` - paste your X cookies manually (x.com -> F12 -> Application -> Cookies) + +Reddit (free, works out of the box): +- Public JSON gives you threads + top comments with upvote counts. No setup required. +- `SCRAPECREATORS_API_KEY=xxx` - optional backup source if public Reddit gets rate-limited. +- `OPENAI_API_KEY=xxx` - optional fallback if public Reddit search has trouble finding threads. + +YouTube (free, open source): +- Run `brew install yt-dlp` - free, open source, 190K+ GitHub stars. Enables YouTube search and transcripts. + +Bonus: TikTok, Instagram, Threads, Pinterest, YouTube comments (ScrapeCreators): +- `SCRAPECREATORS_API_KEY=xxx` - 10,000 free calls at scrapecreators.com. +- After adding your key, set `INCLUDE_SOURCES=tiktok,instagram` to turn on the most popular ones. Add threads, pinterest, youtube_comments for more. + +GitHub Issues/PRs (free, no key needed): +- If you have the `gh` CLI installed (`brew install gh`), GitHub search is automatic. No API key required. + +Perplexity Sonar Pro (AI-synthesized research via OpenRouter): +- `OPENROUTER_API_KEY=xxx` - adds AI-synthesized research with citations as an additive source alongside Reddit/X/YouTube. Returns structured narratives with specific dates, names, and numbers that social sources miss. ~$0.02/run. +- After adding your key, set `INCLUDE_SOURCES=perplexity` (or append to existing, e.g. `INCLUDE_SOURCES=tiktok,instagram,perplexity`). +- Use `--deep-research` flag for exhaustive 50+ citation reports (~$0.90/query) on topics that need serious investigation. +- Bonus: also powers the planning and reranking engine if you don't have a Gemini/OpenAI/xAI key. + +Other bonus sources (add anytime): +- `EXA_API_KEY=xxx` - semantic web search, 1K free/month (exa.ai) +- `BSKY_HANDLE=you.bsky.social` + `BSKY_APP_PASSWORD=xxx` - Bluesky (free app password) +- `BRAVE_API_KEY=xxx` - Brave web search + +Always add this last line: `SETUP_COMPLETE=true` + +**CRITICAL: NEVER overwrite an existing .env file.** Before writing ANY key to `~/.config/last30days/.env`: +1. Check if the file exists: `test -f ~/.config/last30days/.env` +2. If it exists, READ it first, then APPEND only missing keys using `>>` (double redirect) +3. NEVER use `>` (single redirect) which destroys existing content +4. If it doesn't exist, create it: `mkdir -p ~/.config/last30days && touch ~/.config/last30days/.env` + +**Then call AskUserQuestion:** +Question: "How do you want to add your keys?" +Options: +- "Open .env in my editor" - Creates the file with a commented template and opens it. You edit, save, and come back. +- "Paste keys here" - Paste your API keys and I'll write the file for you. +- "I'll do it myself" - I'll tell you the file path and you handle it. + +**If the user picks "Open .env in editor":** +Create `~/.config/last30days/.env` if it doesn't exist (check first!), pre-populated with this template: +``` +``` diff --git a/docs/releases/v3.0.9.md b/docs/releases/v3.0.9.md new file mode 100644 index 0000000..326d9af --- /dev/null +++ b/docs/releases/v3.0.9.md @@ -0,0 +1,112 @@ +# v3.0.9 - The Self-Debug Release + +## Highlights + +**v3.0.9 is live.** New user-facing capabilities, broader cross-platform support, and a skill that now runs reliably on Claude Code, Codex, Hermes, Gemini, claude.ai, and OpenClaw. The headline fix: the engine refuses "birthday gift for 40 year old" style queries with a clarifying question instead of 5 minutes of junk output. The headline feature: TikTok and YouTube top comments now render alongside Reddit's, so the most-engaged voice from every source makes it into the synthesis. + +**The label - "The Self-Debug Release":** I handed 5 separate Opus 4.7 instances their own failed outputs and asked them to debug themselves. Three converged on "SKILL.md is too big and the LAWs are too deep." Two converged on "the engine should refuse demographic-shopping queries outright" and "the WebSearch Sources reminder is overriding LAW 1." I copy-pasted their diagnoses into code. Validation: 5/5 canonical compliance on the topics that had failed. + +## New capabilities + +- **TikTok and YouTube top comments render alongside Reddit's.** PR [#260](https://github.com/mvanhorn/last30days-skill/pull/260) made the top-engagement comment from each TikTok video and YouTube video first-class in the output - same prominent `💬 Top comment` treatment Reddit's top comment already got. This is the biggest user-facing output change since 3.0.0 and it was never announced. The community inspiration trace: @uppinote20's original push for richer Reddit comments ([PR #143](https://github.com/mvanhorn/last30days-skill/pull/143)) seeded the pattern; this PR generalized it across TikTok and YouTube. PR [#265](https://github.com/mvanhorn/last30days-skill/pull/265) followed up by fixing the ScrapeCreators `url=` param + new response shape for YouTube comments/transcripts so the enrichment actually works. + +- **last30days runs on Hermes AI Agent now.** @stephenmcconnachie's PR ([#228](https://github.com/mvanhorn/last30days-skill/pull/228)) added Hermes as a first-class deploy target. `scripts/sync.sh` detects `~/.hermes/skills/research` and deploys the full skill (SKILL.md, scripts, lib modules, fixtures) to Hermes's skills directory alongside Claude Code and Codex. This is one of the biggest surface-area expansions in v3 - last30days is now usable inside the Hermes agent's research workflows without any manual wiring. + +- **Multi-key SCRAPECREATORS_API_KEY rotation.** @zaydiscold's PR ([#268](https://github.com/mvanhorn/last30days-skill/pull/268)) added automatic key rotation. Set `SCRAPECREATORS_API_KEY_1`, `SCRAPECREATORS_API_KEY_2`, etc. and the engine rotates when a key hits rate limits instead of failing the whole run. For power users running daily queries, this is the difference between rate-limit 429s and zero-touch reliability. + +- **The skill works on Windows now.** @Chelebii's PR ([#227](https://github.com/mvanhorn/last30days-skill/pull/227)) stabilized the vendored Bird X search client on Windows. Previously the bundled X backend had subtle runtime issues on Windows terminals; now it runs clean. Pair this with @Gujiassh's UTF-8 encoding fix ([#225](https://github.com/mvanhorn/last30days-skill/pull/225)) for saved output and Windows users get the full v3 experience without workarounds. + +- **Linux permission checks stopped false-warning.** @george231224's PR ([#216](https://github.com/mvanhorn/last30days-skill/pull/216)) fixed `check_perms` on Linux by preferring GNU stat's syntax over the BSD stat that the skill was calling. Linux users were getting spurious permission warnings on `.env` files that were already correctly 600-chmod'd. Now the check matches reality. + +- **Gemini CLI got a first-class install path.** @hnshah's docs PR ([#224](https://github.com/mvanhorn/last30days-skill/pull/224)) added the Gemini CLI install note and workaround for a rough edge in the Gemini skill loader. Gemini users now have a one-paragraph install flow in the README instead of having to reverse-engineer the plugin layout. + +- **Offline quality evaluation.** @j-sperling's PR ([#233](https://github.com/mvanhorn/last30days-skill/pull/233)) added `eval_topics.json` as a fixture. Contributors and I can now run quality-regression checks on synthesis output without burning live API credits. This is the scaffolding that made the plan 015 validation gate affordable - without eval fixtures, testing 5/5 canonical compliance on every release would cost real money every time. Ships as contributor infrastructure but shows up as stability for end users. + +- **Reddit client got a cleaner HTTP layer.** @iliaal shipped three architecture PRs back-to-back ([#207](https://github.com/mvanhorn/last30days-skill/pull/207), [#208](https://github.com/mvanhorn/last30days-skill/pull/208), [#209](https://github.com/mvanhorn/last30days-skill/pull/209)) that consolidated Reddit's HTTP handling into `http.get(params=...)`, rejected garbage input in `_parse_date`, and unified `_sc_headers` into `http.scrapecreators_headers`. End-user benefit: fewer flaky timeouts, fewer "weird parse error" crashes, a codebase that's easier for future contributors to touch without breaking Reddit. These aren't sexy PRs; they're the kind of refactor that prevents six future bug reports. + +- **The `--days=N` flag keeps working.** @BryanTegomoh's PR ([#230](https://github.com/mvanhorn/last30days-skill/pull/230)) restored backcompat for the legacy `--days` alias so anyone who'd scripted against it in 2.x doesn't break on v3. Small PR, meaningful reliability gain for existing users. + +- **INCLUDE_SOURCES has a sane default.** @hnshah's PR ([#223](https://github.com/mvanhorn/last30days-skill/pull/223)) defaulted the env var to empty string instead of unset. Missing env no longer breaks source inclusion on fresh installs. + +- **Version metadata stays in sync.** @Gujiassh's PR ([#217](https://github.com/mvanhorn/last30days-skill/pull/217)) aligned the SKILL.md version header with the sync target version, and @shalomma's PR ([#229](https://github.com/mvanhorn/last30days-skill/pull/229)) closed the remaining drift between the SKILL.md header and plugin.json. "Which version am I actually on" is no longer an adventure. + +- **Bird X engagement handling got hardened.** @j-sperling's PR ([#234](https://github.com/mvanhorn/last30days-skill/pull/234)) made `bird_x` skip all-None engagement dicts instead of crashing on them. Rare condition, but the kind of thing that silently kills a run on a specific topic. + +- **Dev workflow hygiene.** @j-sperling's gitignore PR ([#232](https://github.com/mvanhorn/last30days-skill/pull/232)) dropped `.venv`, `.coverage`, `htmlcov`, and `.memsearch` from the tracked tree. Contributor quality-of-life; keeps PR diffs clean. + +- **The skill installs to claude.ai.** PRs [#242](https://github.com/mvanhorn/last30days-skill/pull/242) and [#244](https://github.com/mvanhorn/last30days-skill/pull/244) shipped `scripts/build-skill.sh` plus the `.gitattributes` + `export-ignore` plumbing that packages last30days into a claude.ai-upload-ready `.skill` file under the 200-file cap. The skill is no longer Claude-Code-only - it installs directly on claude.ai, too. README has the upload workflow. + +- **OpenAI Codex CLI discovers the skill natively.** PR [#219](https://github.com/mvanhorn/last30days-skill/pull/219) added `.agents/skills/last30days/SKILL.md` as a real file (not symlinked - Codex's loader skips symlinks) plus `.codex-plugin/plugin.json` as the namespace marker. The skill now shows up as `last30days:last30days` when Codex runs in a checkout. Inspired by @Jah-yee ([#153](https://github.com/mvanhorn/last30days-skill/pull/153)) and @dannyshmueli on X. + +- **`/last30days` as a slash command.** PR [#267](https://github.com/mvanhorn/last30days-skill/pull/267) added `commands/last30days.md` so plugin users can type `/last30days ` and Claude Code autocomplete prefix-matches it to the canonical `/last30days:last30days` form. No more typing the double-namespace. + +## The self-debug technique, for anyone rebuilding this elsewhere + +The breakthrough wasn't the individual fixes. It was the realization that instead of guessing why the model was ignoring the rules, I should ask the model. Five separate Opus 4.7 sessions debugged their own outputs: + +- "Did you read SKILL.md?" → "I tried Read, hit the 25K token cap, and bailed instead of chunked-reading." +- "Why the trailing Sources block?" → "The WebSearch tool's own reminder said MANDATORY. Precedence was unclear." +- "Why the section headers?" → "I had strong priors on Peter Steinberger and wrote my thesis instead of passing through." +- "Why the wrong file?" → "I read `.agents/skills/last30days/SKILL.md` first because it appeared in the path glob." + +Three of the five said "move the LAWs to the top." Two said "make the engine enforce it so the model can't not comply." I shipped both. That's the whole technique: when the LLM-under-orchestration keeps breaking the contract, don't argue with it - ask it to debug itself, and build structural enforcement around whatever it names as the root cause. + +## Thank you + +**Community PR authors since v3.0.0:** +- @j-sperling - v3 engine architecture, eval fixtures, gitignore hygiene, Bird X hardening ([#232](https://github.com/mvanhorn/last30days-skill/pull/232), [#233](https://github.com/mvanhorn/last30days-skill/pull/233), [#234](https://github.com/mvanhorn/last30days-skill/pull/234)) +- @stephenmcconnachie - Hermes AI Agent support ([#228](https://github.com/mvanhorn/last30days-skill/pull/228)) +- @zaydiscold - Multi-key SCRAPECREATORS rotation ([#268](https://github.com/mvanhorn/last30days-skill/pull/268)) +- @iliaal - Reddit HTTP helper + GitHub date parsing + ScrapeCreators header consolidation ([#207](https://github.com/mvanhorn/last30days-skill/pull/207), [#208](https://github.com/mvanhorn/last30days-skill/pull/208), [#209](https://github.com/mvanhorn/last30days-skill/pull/209)) +- @Chelebii - Windows Bird X stability ([#227](https://github.com/mvanhorn/last30days-skill/pull/227)) +- @george231224 - Linux check_perms stat ([#216](https://github.com/mvanhorn/last30days-skill/pull/216)) +- @Gujiassh - UTF-8 saved output + version metadata alignment ([#217](https://github.com/mvanhorn/last30days-skill/pull/217), [#225](https://github.com/mvanhorn/last30days-skill/pull/225)) +- @hnshah - INCLUDE_SOURCES default + Gemini install docs ([#223](https://github.com/mvanhorn/last30days-skill/pull/223), [#224](https://github.com/mvanhorn/last30days-skill/pull/224)) +- @shalomma - SKILL.md v3.0.0 version header ([#229](https://github.com/mvanhorn/last30days-skill/pull/229)) +- @BryanTegomoh - --days alias backcompat ([#230](https://github.com/mvanhorn/last30days-skill/pull/230)) + +**v3 roadmap contributors (issues and PRs that shaped the v3 feature set):** +- @uppinote20 - rich Reddit comments ([#143](https://github.com/mvanhorn/last30days-skill/pull/143)) +- @zerone0x - GitHub as a first-class source ([#134](https://github.com/mvanhorn/last30days-skill/issues/134), [#136](https://github.com/mvanhorn/last30days-skill/pull/136)) +- @thinkun - Reddit enrichment timeout handling ([#116](https://github.com/mvanhorn/last30days-skill/pull/116)) +- @thomasmktong - pure-Python Reddit fallback ([#124](https://github.com/mvanhorn/last30days-skill/pull/124)) +- @fanispoulinakisai-boop - Reddit timeout report ([#100](https://github.com/mvanhorn/last30days-skill/issues/100)) +- @pejmanjohn - plugin directory naming ([#99](https://github.com/mvanhorn/last30days-skill/issues/99), [#78](https://github.com/mvanhorn/last30days-skill/issues/78)) +- @zl190 - HN trending merge ([#115](https://github.com/mvanhorn/last30days-skill/pull/115)) +- @hnshah - Watchlist features ([#84](https://github.com/mvanhorn/last30days-skill/pull/84), [#85](https://github.com/mvanhorn/last30days-skill/pull/85), [#86](https://github.com/mvanhorn/last30days-skill/pull/86)) +- @Jah-yee, @dannyshmueli - Codex CLI discovery +- @Cody-Coyote - marketplace validation bug report ([#204](https://github.com/mvanhorn/last30days-skill/issues/204)) + +**The five Opus 4.7 instances that debugged their own failures on v3.0.7 and v3.0.8 and converged on the fixes.** The convergence was the breakthrough; this release is their diagnosis in code. + +## Install / Update + +``` +/plugin marketplace add mvanhorn/last30days-skill +/plugin install last30days@last30days-skill +``` + +Or if already installed: + +``` +/plugin update last30days +/reload-plugins +``` + +## Verify + +``` +cat ~/.claude/plugins/cache/last30days-skill/last30days/*/.claude-plugin/plugin.json | grep version +``` + +Should print `"version": "3.0.9"`. + +## Smoke test + +``` +/last30days birthday gift for 40 year old +``` + +Should ask a clarifying question before running. If it runs the engine anyway, the cache is stale - repeat the plugin update. + +**Full Changelog:** https://github.com/mvanhorn/last30days-skill/compare/v3.0.5...v3.0.9 diff --git a/docs/search-quality-eval.md b/docs/search-quality-eval.md new file mode 100644 index 0000000..f7e0790 --- /dev/null +++ b/docs/search-quality-eval.md @@ -0,0 +1,48 @@ +# Search Quality Eval + +`skills/last30days/scripts/evaluate_search_quality.py` is an optional local evaluation step for retrieval quality. It is not part of the user-facing runtime and does not need to run in CI by default. + +What it does: + +- runs a baseline revision (default `origin/main`) against a candidate checkout +- evaluates the fixed 5 reviewer topics by default +- computes deterministic stability metrics: + - `Jaccard` overlap vs baseline + - retention vs baseline + - per-source counts and overlap +- optionally calls Gemini as a judge for graded relevance labels and then computes: + - `Precision@5` + - `nDCG@5` + - source-coverage recall across the judged union pool + +Recommended usage: + +```bash +uv run python skills/last30days/scripts/evaluate_search_quality.py +``` + +Useful flags: + +```bash +uv run python skills/last30days/scripts/evaluate_search_quality.py \ + --baseline-rev origin/main \ + --candidate-rev HEAD \ + --no-default-topics \ + --topic "cursor IDE pricing" \ + --per-source-limit 5 +``` + +Gemini configuration: + +- preferred on this workspace: set `GOOGLE_API_KEY` +- also accepted: `GEMINI_API_KEY` or `GOOGLE_GENAI_API_KEY` +- optional: set `GEMINI_MODEL` +- default model is `gemini-3-pro-preview` for the direct Gemini API + +Notes: + +- The script forces a clean env-based auth path when it shells out to `last30days.py`. +- It passes `XAI_API_KEY`, `OPENAI_API_KEY`, and `SCRAPECREATORS_API_KEY`, but intentionally does not pass browser-cookie X auth. That keeps evaluation runs on the popup-free path. +- It also strips `node` from the eval `PATH` and wraps `yt-dlp` with `--ignore-config`, so older revisions do not inherit local browser-cookie config either. +- `Jaccard` and retention are regression guards, not truth metrics. +- `Precision@5` and `nDCG@5` are only as good as the judged pool. They help compare revisions, but they are not a substitute for a larger labeled benchmark. diff --git a/docs/solutions/architecture/search-quality-eval-manual-by-default-2026-05-10.md b/docs/solutions/architecture/search-quality-eval-manual-by-default-2026-05-10.md new file mode 100644 index 0000000..a8494a4 --- /dev/null +++ b/docs/solutions/architecture/search-quality-eval-manual-by-default-2026-05-10.md @@ -0,0 +1,82 @@ +--- +title: Search-quality eval is manual by default, not a CI gate on every PR +date: 2026-05-10 +category: docs/solutions/architecture +module: skills/last30days/scripts/evaluate_search_quality.py +problem_type: design_decision +component: ci_policy +severity: low +applies_when: + - a contributor proposes wiring search-quality eval into PR CI + - a change affects retrieval, ranking, grounding, or synthesis quality and a reviewer asks "why aren't we testing this in CI?" + - someone is deciding whether a new evaluator-style script belongs in the default CI workflow +related_components: + - search_quality_evaluation + - ci_workflow + - llm_judging +tags: + - ci-policy + - eval + - design-decision + - cost-vs-signal + - non-determinism + - manual-gates +--- + +# Search-quality eval is manual by default, not a CI gate on every PR + +## Context + +`skills/last30days/scripts/evaluate_search_quality.py` compares a baseline revision against a candidate revision across a fixed pool of reviewer topics. It produces two flavors of metrics: deterministic overlap (Jaccard, retention) and LLM-judged quality scores. The natural impulse on seeing an evaluator script is to wire it into CI on every PR — "regression catcher, run it automatically." We deliberately don't. + +Three properties of this particular evaluator make CI-on-every-PR the wrong default: + +1. **Live API access.** The candidate revision typically needs the engine to actually run, which means real ScrapeCreators calls, real reddit fetches, real YouTube searches. CI runs would either need production credentials or a record/replay fixture set that drifts almost immediately as external APIs change shape. + +2. **Cost and latency.** A full eval pass runs the pipeline N times across reviewer topics. Multiplied by every PR (including doc-only PRs), the spend is meaningful and the wall-clock pushes CI from ~30s to many minutes. + +3. **Non-determinism in the judging path.** The LLM-judged metrics are valuable for review but depend on judge-model behavior on a given day. A flaky eval that fails 1 PR in 20 because the judge re-scored an item differently is a worse CI signal than no eval at all — it teaches contributors to retry rather than read the result. + +The deterministic overlap metrics are useful regression signals but they are not the same as user-facing correctness. A change that improves overlap can degrade synthesis quality; a change that drops overlap can be a deliberate improvement. So even the deterministic side isn't safe to auto-fail on. + +## Guidance + +### 1. Keep search-quality eval available, just not automatic + +The script stays runnable by maintainers and contributors. The pattern is: + +```bash +LAST30DAYS_PYTHON=python3.13 \ + python3 skills/last30days/scripts/evaluate_search_quality.py \ + --baseline main --candidate HEAD +``` + +Reviewers can request a manual eval run when a PR is in the retrieval/ranking/synthesis path and the risk warrants it. Contributors can run it locally before submitting if they want signal upfront. + +### 2. Standard PR CI gates remain deterministic and contract-shaped + +`pytest` (offline-safe), plugin-contract checks, version-consistency contracts, ruff/lint. Anything that returns the same answer twice for the same input. Quality-of-output assessment lives outside that loop. + +### 3. The middle ground is `workflow_dispatch`, not auto-PR-gating + +If maintainers want a GitHub-triggered eval that doesn't make every PR pay the live-API cost, the right shape is a manually-dispatched workflow (or a label-triggered one) — not a `pull_request:` workflow that runs unconditionally. That keeps the cost knob in human hands. + +### 4. Revisit if the eval can ever be made offline-deterministic + +The blocker is the live-API + non-determinism combination. If a future iteration of the script can compute meaningful Jaccard/retention metrics against static fixtures (no live API calls, no LLM judging), the decision flips and it becomes a candidate for default CI. The decision below tracks that condition; revisit when it's met. + +## What this means in practice + +- Don't merge PRs that wire `evaluate_search_quality.py` into the default `validate.yml` workflow. +- Do merge PRs that add `workflow_dispatch` triggers or label-gated runs. +- When reviewing a retrieval/ranking change, request a manual eval if the diff suggests it could regress quality — don't expect CI to catch it. + +## Links + +- `skills/last30days/scripts/evaluate_search_quality.py` — the evaluator script +- `docs/search-quality-eval.md` — user-facing usage documentation +- `.github/workflows/validate.yml` — the default CI workflow (deterministic gates only) + +--- + +*Adapted from a draft ADR proposed by @hnshah in [#374](https://github.com/mvanhorn/last30days-skill/pull/374), restructured into the `docs/solutions/` convention. The original ADR text correctly identified the constraint; this version adds the "why workflow_dispatch is the middle ground" framing and the revisit-condition.* diff --git a/docs/solutions/integration-issues/digg-cli-agent-path-setup-wizard.md b/docs/solutions/integration-issues/digg-cli-agent-path-setup-wizard.md new file mode 100644 index 0000000..9cc4cfd --- /dev/null +++ b/docs/solutions/integration-issues/digg-cli-agent-path-setup-wizard.md @@ -0,0 +1,80 @@ +--- +title: Digg NUX must match printing-press-library install paths and agent subprocess PATH +date: 2026-06-17 +category: docs/solutions/integration-issues +module: lib/setup_wizard +problem_type: integration_issue +component: development_workflow +severity: medium +symptoms: + - Digg source silently off after first-run setup reports success on Hermes or OpenClaw + - Users who already installed pp-digg via printing-press-library still see Digg missing from --diagnose available_sources + - Setup wizard probed ~/go/bin while the catalog installer writes to ~/.local/bin (printing-press-library 0.1.16+) + - OpenClaw setup --openclaw path skipped Digg install entirely +root_cause: config_error +resolution_type: code_fix +related_components: + - lib/pipeline + - lib/digg + - CONFIGURATION.md +tags: + - digg + - setup-wizard + - printing-press-library + - agent-path + - hermes + - openclaw + - nux + - optional-cli-sources +--- + +# Digg NUX must match printing-press-library install paths and agent subprocess PATH + +## Problem + +First-run setup auto-install for `digg-pp-cli` could report success while the engine still omitted Digg, especially on Hermes and OpenClaw where the agent subprocess PATH often excludes `$HOME/.local/bin`. The initial PR also used the deprecated `@mvanhorn/printing-press` package and probed legacy `~/go/bin` fallbacks instead of the current Printing Press default install dir. + +## Symptoms + +- `--diagnose` `available_sources` lacks `digg` even though pp-digg or setup "installed" the CLI. +- Hermes/OpenClaw users with a prior `npx @mvanhorn/printing-press-library install digg --cli-only` run hit false failures or false "now active" messages depending on probe logic. +- OpenClaw `setup --openclaw` never attempted Digg install (desktop NUX only). + +## What Didn't Work + +- **Treating "binary exists somewhere" as installed** — `pipeline.available_sources()` and `digg._is_available()` gate on `shutil.which("digg-pp-cli")` only. Probing `~/go/bin` without PATH visibility produced false positives. +- **Assuming Hermes vs OpenClaw use different binary locations** — both harnesses use the same printing-press-library default (`$HOME/.local/bin`); only the focused pp-digg *skill* wiring differs. +- **Using `@mvanhorn/printing-press`** — superseded by `@mvanhorn/printing-press-library`; install defaults moved from `$GOPATH/bin` to `$HOME/.local/bin` in npm 0.1.16. + +## Solution + +Align setup wizard with the catalog installer and the engine PATH gate: + +1. **Pin installer:** `npx -y @mvanhorn/printing-press-library@0.1.16 install digg --cli-only` (`--cli-only` only — last30days embeds Digg as an engine source, not pp-digg skill). +2. **Split outcomes:** `already_installed` / `installed` only when `shutil.which` resolves; `installed_off_path` when the binary exists under known dirs (`~/.local/bin`, legacy `~/go/bin`, Windows PrintingPress bin) but is not PATH-visible; surface `digg_path` and PATH-restart guidance in status text. +3. **OpenClaw parity:** `run_openclaw_setup()` runs the same `_install_digg_cli()` and returns `digg_cli`, `digg_action`, optional `digg_path`. +4. **Docs:** CONFIGURATION.md, SKILL.md Step 0, HERMES_SETUP.md, AGENTS.md rule for CLI-gated sources. + +Key helper shape in `setup_wizard.py`: + +```python +def _digg_on_path() -> Optional[str]: + return shutil.which(DIGG_CLI_BIN) # engine gate + +def _digg_off_path_binary() -> Optional[str]: + for candidate in _digg_bin_candidate_paths(): # ~/.local/bin first + if candidate.is_file() and os.access(candidate, os.X_OK): + return str(candidate) + return None +``` + +## Why This Works + +The engine never reads "is pp-digg skill installed?" — every research run shells out to `digg-pp-cli` by name on PATH. Printing Press already installs to a managed user bin dir and warns when that dir is off PATH; last30days setup must mirror that contract instead of inventing a separate success definition. Detecting off-PATH binaries lets setup reuse prior pp-digg installs without lying about activation. + +## Prevention + +- When adding NUX auto-install for a CLI-gated source, match the upstream installer's default bin dir and pin the npm semver. +- Success messaging must use the same probe as `available_sources()` (`shutil.which`), with a separate off-PATH outcome when the binary exists on disk. +- Cover Hermes/OpenClaw in tests with redirected `HOME` and mocked PATH; add OpenClaw JSON fields when server setup should mirror desktop NUX. +- Search `docs/solutions/` for `digg`, `setup-wizard`, and `agent-path` before changing optional-source onboarding. diff --git a/docs/solutions/logic-errors/entity-grounding-full-phrase-false-demotion.md b/docs/solutions/logic-errors/entity-grounding-full-phrase-false-demotion.md new file mode 100644 index 0000000..91c4ee3 --- /dev/null +++ b/docs/solutions/logic-errors/entity-grounding-full-phrase-false-demotion.md @@ -0,0 +1,117 @@ +--- +title: Keyless rerank entity grounding required full multi-word phrase, falsely demoting on-entity items +date: 2026-06-09 +category: docs/solutions/logic-errors +module: lib/rerank +problem_type: logic_error +component: search_ranking +severity: high +symptoms: + - on-entity, high-engagement items that name the brand but omit the trailing descriptor of a multi-word query are demoted in keyless/fallback rerank results + - observed case is a 323-point HN thread about Stripe scoring 0 on a "Stripe payments" query + - the entity-miss demotion lands twice (ENTITY_MISS_PENALTY on rerank_score plus a secondary final_score penalty), so a false miss guarantees burial regardless of engagement + - reddit keyless comment-enrichment slot selection skips the same on-entity threads via an independently duplicated full-phrase check in _slot_priority +root_cause: logic_error +resolution_type: code_fix +related_components: + - reddit_keyless + - comment_enrichment +tags: + - entity-grounding + - rerank + - keyless-fallback + - multi-word-entity + - substring-match + - false-demotion + - reddit-keyless + - duplicated-logic +--- + +# Keyless rerank entity grounding required full multi-word phrase, falsely demoting on-entity items + +## Problem + +The keyless/fallback rerank path's entity-grounding demotion required the FULL multi-word primary-entity phrase as a contiguous substring of the candidate's text (`primary_entity.lower() not in haystack`), so on-entity items that omitted a trailing search descriptor were falsely flagged as entity misses and buried by a deliberately decisive double penalty. + +## Symptoms + +- On a "Stripe payments" query, a 323-point HN thread titled "Stripe is friendly to 'friendly fraud'" was demoted to score 0 — purely because its text never contained the literal phrase "stripe payments" (the trailing word "payments" was missing). +- The burial is guaranteed by design, not incidental: a flagged entity miss takes −25 `ENTITY_MISS_PENALTY` on `rerank_score` in `_fallback_tuple`, PLUS `ENTITY_MISS_FINAL_PENALTY` applied directly in `_final_score` (added 2026-04-19 after engagement + freshness drowned the diluted penalty). A false positive on the check means confirmed-good signal cannot recover. +- The same over-strict check had been independently re-implemented in `reddit_keyless._slot_priority` (keyless Reddit comment-enrichment slot selection), so scarce comment slots were also steered away from head-token-only posts. + +## What Didn't Work + +- **Naively relaxing the check** — the full-phrase check existed for a real reason: on 2026-04-19 an off-topic video with zero brand mentions ranked #2 on a Hermes query (documented in the `ENTITY_MISS_FINAL_PENALTY` comment in `skills/last30days/scripts/lib/rerank.py`). Any fix had to keep that demotion firing. +- **Word-boundary matching** — rejected; it re-introduces over-demotion on plurals/possessives/compounds ("stripes", "Stripe's"). +- **Graded penalty** (full-phrase = 0, head-only = half, none = full) — rejected; it half-punishes items that are 100% about the entity. Lexical coverage is not topical degree. +- **Any-token grounding** — rejected; "payments" alone would ground completely generic posts. +- **Distinctiveness gate for generic heads** — rejected as complexity to patch a failure mode that is already a safe no-op (see Why This Works). +- **Trusting the docstring** — `reddit_keyless._slot_priority`'s docstring claimed to "mirror rerank's demotion signal," but its inline reimplementation (`entity in _post_text(post).lower()`) had silently drifted from being a mirror into being a second copy of the bug. It was found only by a code-reuse review, not by tests. + +## Solution + +Ground on the **head token** of the primary entity instead of the full phrase, via one shared helper used by both paths. + +**Site 1 — new helper in `skills/last30days/scripts/lib/rerank.py`:** + +```python +def _entity_grounded(haystack: str, primary_entity: str) -> bool: + tokens = primary_entity.lower().split() + if not tokens: + return True + return tokens[0] in haystack +``` + +`_fallback_tuple` switches from the inline phrase check to the helper: + +```python +# before +if haystack.strip() and primary_entity.lower() not in haystack: +# after +if haystack.strip() and not _entity_grounded(haystack, primary_entity): +``` + +**Site 2 — secondary penalty in `_final_score`: no code change needed.** It keys off the explanation string set by site 1, so it inherits the fix automatically: + +```python +if candidate.explanation and "entity-miss" in candidate.explanation: + base = max(0.0, base - ENTITY_MISS_FINAL_PENALTY) +``` + +**Site 3 — `skills/last30days/scripts/lib/reddit_keyless.py` `_slot_priority`:** replace the drifted reimplementation with a call to the shared helper: + +```python +# before +return entity in _post_text(post).lower() +# after +return rerank._entity_grounded(_post_text(post).lower(), entity) +``` + +Tests: `tests/test_rerank_v3.py` gained `test_fallback_grounds_on_head_token_not_full_phrase` (the Stripe regression) and `test_fallback_still_demotes_when_head_token_absent_on_multiword_topic` (guards the 2026-04-19 behavior). `tests/test_reddit_keyless.py`'s two old-contract tests were rewritten as `test_slot_priority_grounds_on_head_token_not_full_phrase` and `test_intent_modifier_topic_prioritizes_head_token_match`. + +## Why This Works + +- **Root cause:** trailing tokens of a multi-word query ("payments" in "Stripe payments") are usually category descriptors the user/planner appended for search, not part of the entity name. Requiring the whole phrase conflates "doesn't repeat my search phrasing" with "isn't about my entity." The brand head token alone is sufficient grounding; items that never name the brand at all still miss the head token and stay demoted — so the original 2026-04-19 fix keeps firing. +- **Asymmetry argument:** the demotion is engineered to be decisive (double penalty across `rerank_score` and `final_score`), so a false entity-miss is fatal-by-design, while a false grounding merely defers the item to normal relevance/freshness/quality ranking. When the punishment is capital, the conviction standard should be conservative. +- **Substring (not word-boundary) is deliberate:** it catches plurals/possessives/compounds ("stripes", "Stripe's"). Degenerate short heads ("X", "Go", "C") make the check vacuously true, which merely **disables** the penalty — reverting to the pre-grounding baseline — rather than burying good items. Every failure mode of this rule degrades toward "no penalty," never toward "bury good signal." +- **Accepted, bounded limitation:** head-collision with a different famous entity ("Hermes Agent" → a "Hermes Birkin" thread now escapes demotion). This is lexically unfixable — any token rule strong enough to kill the collision re-kills the Stripe case; the discriminator is semantic. The LLM rerank path (which receives the full phrase as prompt guidance and judges semantically) covers this when API keys exist; the keyless path accepts the bounded risk. + +## Prevention + +- **Shared helper as single source of truth:** when one module's behavior must "mirror" another's signal, it must *call* the same function, not re-implement the check. The `reddit_keyless._slot_priority` drift happened precisely because the mirror was a copy. The fix wires it to `rerank._entity_grounded`, and the docstring now states this explicitly: "keying on the same head token keeps the two paths from diverging." +- **Docstrings record deliberate trade-offs:** `_entity_grounded`'s docstring documents WHY head-token (not phrase), why substring (not word-boundary), and the safe-failure direction. Future readers see the rejected alternatives were considered, not overlooked — and won't "tighten" the check into a regression. +- **Both directions pinned by named tests:** + - `tests/test_rerank_v3.py::test_fallback_grounds_on_head_token_not_full_phrase` — false-demotion regression (the Stripe HN thread must not be flagged). + - `tests/test_rerank_v3.py::test_fallback_still_demotes_when_head_token_absent_on_multiword_topic` — the fix must not neuter the demotion (guards the 2026-04-19 off-topic-video incident). + - `tests/test_reddit_keyless.py::test_slot_priority_grounds_on_head_token_not_full_phrase` and `test_intent_modifier_topic_prioritizes_head_token_match` — the mirrored path asserts the same contract. +- **Audit tests when changing a contract:** tests that encode the old behavior as correct must be rewritten to the new contract, not worked around — the two old `test_reddit_keyless.py` tests would have silently re-blessed the bug. +- **For decisive penalties, route through one flag:** the `_final_score` backstop keys off `"entity-miss" in candidate.explanation` rather than re-running the check — so there was exactly one site to fix and the second penalty inherited it for free. Prefer this signal-propagation pattern over duplicating predicate logic at each penalty site. + +## Related Issues + +- [PR #484](https://github.com/mvanhorn/last30days-skill/pull/484) — "fix(reddit): relevance-aware comment-enrichment slot selection in keyless path" — introduced the `_slot_priority` mirror this fix reroutes through the shared helper. +- [PR #457](https://github.com/mvanhorn/last30days-skill/pull/457) — "fix(reddit): restore free path via keyless RSS + shreddit scrape" — established the keyless Reddit path. +- [PR #488](https://github.com/mvanhorn/last30days-skill/pull/488) (open) — "fix(reddit): relevance floor + relevance-first ranking" — external PR touching the same ranking surface; coordinate before merging both. +- [Issue #468](https://github.com/mvanhorn/last30days-skill/issues/468) (open) — relevance scoring over-pruning on-topic YouTube items; same symptom family in a different source. +- [../architecture/search-quality-eval-manual-by-default-2026-05-10.md](../architecture/search-quality-eval-manual-by-default-2026-05-10.md) — how to validate ranking/grounding changes like this one (manual eval, not CI-gated). +- [../workflow-issues/release-consistency-test-cascade-2026-05-16.md](../workflow-issues/release-consistency-test-cascade-2026-05-16.md) — sibling prevention pattern: lockstep artifacts drift unless mechanically unified. diff --git a/docs/solutions/workflow-issues/release-consistency-test-cascade-2026-05-16.md b/docs/solutions/workflow-issues/release-consistency-test-cascade-2026-05-16.md new file mode 100644 index 0000000..afe95fb --- /dev/null +++ b/docs/solutions/workflow-issues/release-consistency-test-cascade-2026-05-16.md @@ -0,0 +1,219 @@ +--- +title: Release-time consistency tests cause cascade CI failures across all open PRs +date: 2026-05-16 +category: docs/solutions/workflow-issues +module: ci-release-engineering +problem_type: workflow_issue +component: testing_framework +severity: high +applies_when: + - a test asserts consistency between two release-time artifacts (e.g., SKILL.md version and a hardcoded pin in a shell script) + - one artifact is updated as part of a version bump and the other requires a manual lockstep update + - multiple long-lived PRs are open simultaneously against the same base branch +symptoms: + - every open PR's CI fails after a version bump even though the PRs are unrelated to versioning + - the failing test references a stale hardcoded value that was not updated alongside the bumped version + - PR authors must rebase and manually fix an artifact they did not touch +root_cause: missing_workflow_step +resolution_type: code_fix +related_components: + - development_workflow + - documentation +tags: + - ci + - release-engineering + - consistency-test + - version-pin + - cascade-failure + - test-design + - workflow +--- + +# Release-time consistency tests cause cascade CI failures across all open PRs + +## Context + +A `tests/test_version_consistency.py::test_sync_cache_path_uses_skill_version` test was added to enforce that the version string embedded in `skills/last30days/scripts/sync.sh` (a hardcoded plugin-cache path segment) matched the version frontmatter in `skills/last30days/SKILL.md`. The intention was sound: the cache path had to stay in lockstep with the skill version or the sync would silently pull stale files. + +The test worked as designed until a release shipped. At that point it turned into a cascade-failure machine: + +1. A release PR bumps `SKILL.md` version (e.g., 3.2.0 → 3.2.1) **and** bumps the `sync.sh` pin. That PR's CI is green. +2. The release PR merges to `main`. +3. Every PR that was open at merge time was branched from pre-release `main`. Those PRs have `SKILL.md` 3.2.1 (inherited via merge-base with `main`) but their branch never touched `sync.sh`. +4. CI for those PRs runs the consistency test against the new `main` — `SKILL.md` says 3.2.1, `sync.sh` still says 3.2.0 — and fails. +5. All open PRs are now red simultaneously, with a failure that has nothing to do with their changes. + +This affected at least five PRs during the 2026-05-13 to 2026-05-15 window: PR #400 (caught during rebase, required a manual pin bump), PRs #390 and #392 (OpenClaw `SCRAPECREATORS_API_KEY` fix, both stalled for the same stale-pin reason), and at least two others. A follow-up hotfix PR (#397 — `fix(sync): bump cache target to 3.2.1 to match SKILL.md`) was required just to unblock the queue. + +The permanent fix was PR #405: delete `sync.sh` entirely (the install workflow made it redundant) and drop `test_sync_cache_path_uses_skill_version`. Once both were gone, no version-consistency cascade was possible. + +## Guidance + +### 1. Don't write consistency tests that read two files and assert one matches a substring derived from the other + +This pattern looks safe but is not: + +```python +def test_sync_cache_path_uses_skill_version(self) -> None: + sync_text = (SKILL_ROOT / "scripts" / "sync.sh").read_text(encoding="utf-8") + version = _skill_version() # reads SKILL.md + self.assertIn( + f'last30days-skill/last30days/{version}"', + sync_text, # asserts sync.sh contains that string + ) +``` + +It encodes the assumption that both files are always updated together, in the same commit, on the same branch. That assumption breaks the moment two files have independent lifecycle owners — a versioned manifest and a deployment script are archetypal examples. + +### 2. If the values genuinely need to stay in sync, derive one from the other at runtime + +Remove the hardcoded pin from `sync.sh` and compute it: + +```bash +# sync.sh — derive version from SKILL.md at runtime, no pin to maintain +SKILL_VERSION=$(grep -m1 '^version:' "$(dirname "$0")/../SKILL.md" \ + | sed 's/version:[[:space:]]*"\([^"]*\)"/\1/') +CACHE_PATH="last30days-skill/last30days/${SKILL_VERSION}" +``` + +Now there is only one source of truth (`SKILL.md`). The test that asserted they matched becomes vacuous and should be deleted. If `SKILL.md` is wrong, the sync itself will fail loudly — which is better feedback than a CI gate on a different PR. + +### 3. If two values must stay independent for legitimate reasons, update them together and make the test self-skip if either source is missing + +If separate versioning is genuinely required (e.g., SKILL.md versions for harness consumers, sync.sh versions a private artifact store with its own cadence), update both in the same PR — never staggered — and write the test to self-skip rather than error when either file is absent: + +```python +def test_sync_cache_path_uses_skill_version(self) -> None: + sync_sh = SKILL_ROOT / "scripts" / "sync.sh" + if not sync_sh.exists(): + self.skipTest("sync.sh not present; skipping pin consistency check") + sync_text = sync_sh.read_text(encoding="utf-8") + version = _skill_version() + self.assertIn( + f'last30days-skill/last30days/{version}"', + sync_text, + ) +``` + +Self-skipping means deleting the file is a non-event in CI — no cascading red, no hotfix PR to the queue. + +### 4. Run consistency tests against the merge-base diff, not main + +If you keep a two-file consistency test, scope it so it only fails when the PR itself modifies one of the two files but not the other. A GitHub Actions step can do this: + +```yaml +- name: Check sync.sh version pin consistency + run: | + BASE=$(git merge-base HEAD origin/main) + SKILL_CHANGED=$(git diff --name-only "$BASE" HEAD | grep -c 'SKILL\.md' || true) + SYNC_CHANGED=$(git diff --name-only "$BASE" HEAD | grep -c 'sync\.sh' || true) + if [ "$SKILL_CHANGED" -gt 0 ] && [ "$SYNC_CHANGED" -eq 0 ]; then + echo "SKILL.md version bumped but sync.sh pin was not updated" + exit 1 + fi +``` + +This only fires when your PR touched `SKILL.md` and left `sync.sh` alone — never because a release merged to `main` after you branched. + +### 5. Ask whether you actually need this test + +If the values are wrong, downstream tooling will fail loudly: the sync will fetch the wrong artifact, installs will break, or the harness will reject the version. A test that exists only to catch a human-bookkeeping error at release time adds cascade-fail risk without offering a meaningfully earlier signal. Weigh that cost before adding any two-file consistency gate. + +## Why This Matters + +The damage from a stale-pin consistency test is asymmetric. It: + +- Fails on every open PR simultaneously the moment a release lands on `main` — not just the PR that forgot to update the pin. +- Produces a failure message that points at a line in a test file with no obvious relationship to the PR's actual changes. +- Requires either a hotfix PR (touching a file the failing PRs have no business touching) or a manual rebase of every affected branch. +- Blocks work that has already been reviewed and approved. + +In this repo the effect was measurable: at least five PRs stalled across a two-day window, one hotfix PR was shipped just to unblock the queue, and multiple authors spent time debugging a failure completely unrelated to their changes. + +The broader principle is that tests which gate on *bookkeeping consistency between files* impose their maintenance cost on every contributor, every time, even when those contributors did nothing wrong. That cost compounds with team size and release cadence. + +## When to Apply + +Apply this guidance whenever you find yourself: + +- Writing a test that reads two files and asserts that a string in one matches a value derived from the other. +- Adding a CI step labeled "consistency check," "sync check," or "pin check" where the check compares a hardcoded value against a computed one from a separate file. +- Working in a repo where a versioned manifest (e.g., `SKILL.md`, `package.json`, `pyproject.toml`) and a deployment artifact (e.g., a shell script, a Dockerfile, a Helm values file) are both maintained by hand. +- Reviewing a PR that touches only one of two "paired" files and fails a consistency test for the other. + +It does *not* apply to tests that read a single source of truth and validate its internal structure (e.g., asserting that `SKILL.md`'s frontmatter version is double-quoted, or that `package.json`'s `version` field is a valid semver string). Those tests have one file and one assertion; they cannot cascade across branches. + +## Examples + +### Before — the pattern that caused the cascade + +Original `tests/test_version_consistency.py` (deleted in commit `9fb19ea`): + +```python +import re +import unittest +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +SKILL_ROOT = ROOT / "skills" / "last30days" + + +def _skill_version() -> str: + text = (SKILL_ROOT / "SKILL.md").read_text(encoding="utf-8") + match = re.search(r'^version:\s*"([^"]+)"\s*$', text, re.MULTILINE) + if not match: + raise AssertionError("SKILL.md version frontmatter not found") + return match.group(1) + + +class TestVersionConsistency(unittest.TestCase): + def test_sync_cache_path_uses_skill_version(self) -> None: + sync_text = (SKILL_ROOT / "scripts" / "sync.sh").read_text(encoding="utf-8") + version = _skill_version() # source 1: SKILL.md frontmatter + self.assertIn( # assertion: sync.sh must contain + f'last30days-skill/last30days/{version}"', + sync_text, # source 2: hardcoded string in sync.sh + ) +``` + +`sync.sh` contained a line like: + +```bash +PLUGIN_CACHE="$HOME/.cache/last30days-skill/last30days/3.2.0" +``` + +When SKILL.md bumped to `3.2.1` in a release PR, `sync.sh` was updated in the same PR and CI stayed green. But every PR branched before that release still had `sync.sh` at `3.2.0`. Their CI failed immediately, with an assertion error pointing at the test, not at the release PR. + +### After — what we did: delete both + +PR #405 deleted `sync.sh` (the install workflow replaced it) and dropped `test_sync_cache_path_uses_skill_version` in the same change. No consistency gate, no pin to maintain, no cascade possible. + +### After — what we could have done instead: derive at runtime + +If `sync.sh` had still been needed, the right fix would have been to remove the hardcoded version from the script and derive it from `SKILL.md`: + +```bash +#!/usr/bin/env bash +# sync.sh — no hardcoded version; reads SKILL.md as single source of truth +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +SKILL_VERSION=$(grep -m1 '^version:' "${SCRIPT_DIR}/../SKILL.md" \ + | sed 's/version:[[:space:]]*"\([^"]*\)"/\1/') + +if [ -z "$SKILL_VERSION" ]; then + echo "error: could not parse version from SKILL.md" >&2 + exit 1 +fi + +PLUGIN_CACHE="$HOME/.cache/last30days-skill/last30days/${SKILL_VERSION}" +# ... rest of sync logic +``` + +With this in place, `test_sync_cache_path_uses_skill_version` has no reason to exist — there is nothing to assert. Delete it. If the version parsing breaks, `sync.sh` itself exits non-zero with a clear message. + +## Related + +- **PR #397** (merged) — `fix(sync): bump cache target to 3.2.1 to match SKILL.md`. The hotfix that unblocked the cascade temporarily by bumping the pin. +- **PR #400** (merged) — caught the same cascade during rebase; had to bump the pin to clear CI. +- **PR #390** (closed) and **PR #392** (rebased + merged) — OpenClaw `SCRAPECREATORS_API_KEY` fix; both blocked by the cascade until rebased onto post-#405 main. +- **PR #405** (merged) — the permanent fix: deleted `sync.sh` + `test_sync_cache_path_uses_skill_version` together. +- **PR #412** (merged) — adjacent work that consolidated SKILL.md version parsing into `lib/skill_meta.py`, reducing future drift risk by giving the version field one canonical reader. diff --git a/docs/v2.1-launch-copy.md b/docs/v2.1-launch-copy.md new file mode 100644 index 0000000..074d063 --- /dev/null +++ b/docs/v2.1-launch-copy.md @@ -0,0 +1,120 @@ +# v2.1 Launch Copy (DRAFT — do not publish) + +## Context + +Bird CLI (@steipete/bird) has been deprecated on npm and the GitHub repo deleted. steipete was asked to take it down (likely by X). Nobody has forked and republished it. Our v2.1 vendors a search-only subset of Bird v0.8.0 (MIT licensed) so users don't need any external tools. + +YouTube transcripts are the second headline feature. Inspired by Peter Steinberger's yt-dlp + summarize toolchain. We use yt-dlp directly (no summarize dependency) — search YouTube, grab transcripts, feed them into the synthesis. Zero API keys, zero cost. + +--- + +## README: "New in V2.1" blurb + +**New in V2.1 — two headline features:** + +- **YouTube transcripts as a 4th source.** When yt-dlp is installed, /last30days automatically searches YouTube, grabs view counts, and extracts auto-generated transcripts from the top videos. A 20-minute review contains 10x the signal of a tweet — now the skill reads it. Inspired by @steipete's yt-dlp + summarize toolchain. +- **X search is fully bundled.** No external `bird` CLI install needed. Add `AUTH_TOKEN` and `CT0` once, and the vendored Bird client runs locally without browser-cookie prompts. `XAI_API_KEY` remains an optional fallback. + +--- + +## README: X Search Authentication section + +### X Search Authentication + +X search prefers explicit env auth. This keeps local runs headless and avoids browser-cookie and macOS Keychain prompts. + +**Recommended setup:** While logged into x.com once, open browser dev tools and copy the `auth_token` and `ct0` cookies for `x.com`. + +Save them as `AUTH_TOKEN` and `CT0` in `~/.config/last30days/.env` or `.claude/last30days.env`: +```bash +AUTH_TOKEN=your_auth_token +CT0=your_ct0_token +``` + +**xAI fallback:** If you do not want to provide `AUTH_TOKEN` and `CT0`, set `XAI_API_KEY` and use xAI's `x_search` backend instead. + +**Verify it's working:** +```bash +node ~/.claude/skills/last30days/scripts/lib/vendor/bird-search/bird-search.mjs --whoami +``` + +--- + +## README: Install block env line + +```bash +AUTH_TOKEN=... # recommended for X search +CT0=... # recommended for X search +XAI_API_KEY=xai-... # optional X fallback +``` + +--- + +## SKILL.md: Stats line + +``` +├─ 🔵 X: {N} posts │ {N} likes │ {N} reposts +``` + +--- + +## GitHub issue #19 response (post AFTER publishing) + +> Thanks for reporting this. Bird CLI was deprecated and the GitHub repo was deleted. steipete was asked to take it down. +> +> The good news: you don't need Bird anymore. v2.1 (just shipped) bundles X search directly. No external CLI, no `npm install`, no brew. Just Node.js 22+ plus `AUTH_TOKEN` and `CT0`, or `XAI_API_KEY` as fallback. +> +> It also adds **YouTube as a 4th source**. When yt-dlp is installed, the skill automatically searches YouTube and extracts transcripts from the top videos. A 20-minute tutorial has 10x the signal of a tweet, and now the synthesis engine reads it. +> +> The recommended setup is to copy `auth_token` and `ct0` from x.com once and store them as `AUTH_TOKEN` and `CT0` in your env. That avoids browser-cookie and Keychain prompts during normal runs. +> +> The xAI API (`XAI_API_KEY`) also still works as a fallback. + +--- + +## X/Social launch post + +### Short (280 chars) + +/last30days v2.1 is out 🚀 + +Two new features: +→ YouTube transcripts as a 4th source (yt-dlp) +→ X search fully bundled (no bird CLI install needed) + +Research any topic across Reddit, X, YouTube & web in one command. + +h/t @steipete for the inspiration on both. + +github.com/mvanhorn/last30days-skill + +### Thread version (post 1) + +/last30days v2.1 just shipped — two headline features: + +1️⃣ YouTube transcripts as a 4th source +When yt-dlp is installed, the skill searches YouTube, grabs view counts, and extracts auto-generated transcripts from top videos. A 20-min review has 10x the signal of a tweet — now the synthesis reads it. + +### Thread version (post 2) + +2️⃣ X search is fully bundled +Bird CLI was deprecated. Instead of requiring an external tool, v2.1 vendors a search-only subset. Add `AUTH_TOKEN` and `CT0` once, then it runs locally with no npm install. `XAI_API_KEY` still works as fallback. + +Both features inspired by @steipete's tooling. + +### Thread version (post 3) + +YouTube goes through the same scoring pipeline as Reddit and X — relevance, recency, engagement. Transcripts get truncated to ~500 words per video and fed into the synthesis engine alongside social posts. + +Zero API keys for YouTube. Zero cost. Just `brew install yt-dlp`. + +### Thread version (post 4) + +Try it: +``` +/last30days [any topic] +``` + +Reddit + X + YouTube + Web. Four sources, one command, copy-paste prompts. + +github.com/mvanhorn/last30days-skill diff --git a/docs/v2.5-launch-tweets.md b/docs/v2.5-launch-tweets.md new file mode 100644 index 0000000..a5480f1 --- /dev/null +++ b/docs/v2.5-launch-tweets.md @@ -0,0 +1,360 @@ +# last30days v2.5 Launch Thread + +## FINAL THREAD (6 tweets) + +### 1/6 - Announcement + +I can't believe it's been 30 days since I launched @slashlast30days. 3.2k stars later, time for v2.5. + +Three big additions: +1. @Polymarket prediction markets as a 6th source - helps you predict the future +2. Cross-source linking + massively better results - detects when the same story trends across multiple platforms. Ran a 15-way blinded comparison, v2.5 scored 4.38 vs 3.73 for the original. Won all 5 topics. +3. Hacker News as a 5th source - a window into the tech and developer insider world + +github.com/mvanhorn/last30days-skill + +### 2/6 - Demo: Anthropic vs Pentagon + +"/last30days Anthropic Pete Hegseth" + +14 Reddit threads. 29 X posts (11,559 likes). 20 YouTube videos (739K views). 5 HN stories. 9 Polymarket markets. + +This story broke TODAY. Hegseth designated Anthropic a "supply chain risk." Trump ordered every agency to stop using their tech. + +Polymarket: Anthropic still 99% for best AI model. $500B+ valuation: 68%. IPO >$600B: 97%. Hegseth out by March: only 6%. + +Markets say Anthropic wins regardless. That's the kind of signal you can't get from opinion threads. + +### 3/6 - Demo: Seedance Prompting + +"/last30days Seedance prompting" + +13 Reddit threads. 33 X posts. 20 YouTube videos (1.2M views, 4 transcripts). 15 web pages. + +Top finding: Seedance 2.0 prompts follow a director's shot-list format, not freeform text. 30-100 words. Subject + Action + Camera + Scene + Style. Beyond 100 words, results degrade. + +Then I said: "a cinematic drone shot over a city at golden hour" + +It wrote me a copy-paste prompt using the exact patterns from the research. Research first, then create from what you learned. + +### 4/6 - Demo: Arizona Basketball + +"/last30days arizona basketball" + +6 Polymarket markets. 37 X posts (4,200 likes). 15 YouTube videos (517K views). 2 Reddit threads. + +Arizona is 25-2, set a program record with a 22-0 start, and holds a 2-game Big 12 lead with 3 games left. The Field of 68 called them "the TOUGHEST team in America" after escaping Baylor shorthanded. Kansas rematch Saturday - the highlight video from their first meeting has 248K views on ESPN's YouTube. + +Polymarket: Championship 13%. #1 seed: 88%. Duke and Michigan each at 18% to win it all. + +That's not a sports blog. That's Reddit reactions + X engagement + YouTube analysis + prediction market odds from one command. + +### 5/6 - Demo: Iran War + +"/last30days iran war" + +2 Reddit threads. 34 X posts (10,048 likes). 20 YouTube videos (1.6M views, 5 transcripts). 4 HN stories (850 points). 14 Polymarket markets ($473M volume). + +Geneva talks just ended without a deal. 150+ US aircraft deployed. Two carrier strike groups in position. F-22s sent to Israel. Members of Congress who saw the secret war plan came out "terrified." @cenkuygur: "they are about to drag us into a war that 70-85% of Americans oppose" (7,700 likes). + +Polymarket ($473M in volume - one of their biggest markets ever): strikes by 2026: 80%. By March 31: 68%. War Powers invoked: 51%. Formal war declaration: only 12%. + +Markets say: strikes are very likely, declared war is not. That's the sharpest signal in the entire research. + +### 6/6 - Thank You + +Thank you to ARJ999 and wkbaran on GitHub who filed three separate issues asking for Hacker News support. v2.5 delivers. + +It's been a crazy 30 days. 3.2k stars. Six sources. Massively better results. Super excited to get this out. + +Try it: /last30days [any topic] + +github.com/mvanhorn/last30days-skill + +--- +--- + +## REFERENCE MATERIAL BELOW + +## Context +- 3.2k stars on GitHub +- V2.5 headline features: Polymarket (6th source), Hacker News (5th source), cross-source linking +- Ran 15-way blinded comparison: 4.38/5.0 vs 3.73/5.0 +- Won all 5 topics, zero regressions +- Cross-source linking: 3 -> 13 linked items +- Demo topics: Anthropic odds (11 markets), Arizona basketball (6 markets), Iran war ($425M volume) + +--- + +## Post 1: Lead (Announcement) + +V2.5 of @slashlast30days is out. Now with @Polymarket prediction markets, cross-source linking, and massively better results. + +1. Polymarket as a 6th source - real money on outcomes, no API key needed +2. Hacker News as a 5th source +3. Cross-source linking - detects when the same story trends across multiple platforms + +Ran a 15-way blinded comparison across 5 topics. v2.5 scored 4.38 vs 3.73 for the original. Won all 5. Zero regressions. + +github.com/mvanhorn/last30days-skill + +--- + +## Post 2: POLYMARKET AS A 6TH SOURCE. + +Reddit tells you what people think. X tells you what people share. YouTube tells you what people watch. HN tells you what developers discuss. + +Polymarket helps you predict the future. + +"/last30days anthropic odds" + +11 markets found. Best AI model February: Anthropic 98%. IPO before OpenAI: 64%. $500B+ valuation: 87%. Pentagon ban odds: only 22%. + +Free API. No key. Real money on outcomes. + +--- + +## Post 3: CROSS-SOURCE LINKING. + +When a Seedance 2.0 tutorial has 44K YouTube views AND trends on HN AND gets discussed on Reddit, v2.5 flags it: [also on: HN, YouTube] + +Old version linked 3 items across 5 test topics. New version links 13. The difference is hybrid similarity - combining character-trigram and token-level matching at a tuned threshold. + +Cross-platform convergence is the strongest signal that something actually matters. Not engagement on one platform. Convergence across all of them. + +--- + +## Post 4: 15-WAY BLINDED EVALUATION. + +I don't trust vibes for measuring quality. So I ran a scientific comparison. + +5 topics x 3 versions. Stripped version labels. Randomized as A/B/C. Scored on groundedness, specificity, coverage, actionability, and format. + +v2.5: 4.38/5.0 +v2.2 (HN only): 4.10/5.0 +v2.0 (original): 3.73/5.0 + +Won all 5 topics. Zero regressions. Biggest gains: specificity (+0.8) and format (+1.0) from cross-source linking giving the synthesis better material to work with. + +--- + +## Post 5: Demo - Anthropic Odds + +Asked it about Anthropic odds. + +11 Polymarket markets. 25 X posts. 13 YouTube videos (719K views). 6 HN stories (471 points). + +Best AI model February: 98%. IPO before OpenAI: 64%. $500B+ valuation: 87%. FrontierMath 50% score: 48% (up 28% today). Pentagon ban: only 22%. + +Markets say Anthropic is winning the model race AND the valuation race. The Pentagon thing is noise. + +--- + +## Post 6: Demo - Arizona Basketball + +"/last30days arizona basketball" + +6 Polymarket markets. 37 X posts (4,200 likes). 15 YouTube videos (517K views). 2 Reddit threads. + +Championship odds: 13%. #1 seed: 88%. Big 12 title: Arizona leads by 2. + +That's not a sports blog. That's Reddit reactions + X engagement + YouTube analysis + prediction market odds from one command. + +The Polymarket integration uses two-pass query expansion. First pass finds "Arizona Big 12." Second pass discovers the championship and #1 seed markets via tag-based domain bridging. + +--- + +## Post 7: Demo - Iran War + +The best Polymarket demo is news. + +"/last30days iran war" + +14 Polymarket markets. $425M+ in volume. 7 Reddit threads. 30 X posts. 20 YouTube videos (2M views). 18 HN stories (1,187 points). + +US strikes Iran by 2026: 70%. War Powers by March: 60%. Israel strikes by June: 64%. Formal war declaration: only 8%. + +Markets say: limited strikes with War Powers, NOT a declared war. Breaking Points (435K views) covered leaked Pentagon opposition. r/Conservative "imploding" per r/SubredditDrama. + +One command. Six sources. Real money. + +--- + +## Post 8: Credits + CTA + +Also in v2.5: YouTube synonym expansion ("hip hop" now matches "rap" - relevance jumped 0.33 to 0.71), X handle resolution, and HN OR queries for framework topics. + +The difference between "good research" and "research you'd actually trust" is in details like this. + +Try it: /last30days [any topic] + +github.com/mvanhorn/last30days-skill + +--- + +## Post 9: Demo - Claude Code (ALL 6 sources) + +"/last30days Claude Code" + +3 Reddit threads (199 upvotes). 35 X posts (5,239 likes). 15 YouTube videos (1.4M views, 5 transcripts). 30 HN stories (~8,500 points). 8 Polymarket markets. 20 web pages. + +All six sources hit. Top finding: the planning-first workflow has won. The #1 HN post this month (969 pts, 590 comments) is about separating planning from execution. Boris Cherny (Head of Claude Code) on Lenny's Podcast: "100% of my code is written by Claude Code - I have not edited a single line by hand since November." + +Polymarket: Anthropic 99% for best AI model in February. 58% for March. Claude on FrontierMath at 55%. The US government rejected Claude - Polymarket has the Hegseth ban at 32%. + +Then I asked it to dig deeper into the planning-first workflow. No new searches - it answered from what it already learned. + +--- + +## Post 10: Demo - March Madness Odds (Polymarket + Sports) + +"/last30days March Madness Odds" + +2 Reddit threads. 31 X posts. 6 YouTube videos (46K views, 4 transcripts). 2 Polymarket markets. + +Tournament winner: Duke 18%, Michigan 18%, Arizona 13%. #1 seeds: Michigan 98%, Duke 91%, Arizona 88%. + +Duke is the hottest mover - went from +700 to +450 in one week. The skill surfaced that from sportsbook data, X commentary, and Polymarket odds simultaneously. + +Then I asked it to break down Michigan vs Duke vs Arizona. Full analysis from the research it already had. + +--- + +## Post 11: Demo - Seedance Prompting (Expert + Prompt Mode) + +"/last30days Seedance prompting" + +13 Reddit threads. 33 X posts. 20 YouTube videos (1.2M views, 4 transcripts). 1 HN story. 15 web pages. + +Top finding: Seedance 2.0 prompts follow a director's shot-list format, not freeform text. 30-100 words. Subject + Action + Camera + Scene + Style + Constraints. Beyond 100 words, results degrade. + +Then I said: "a cinematic drone shot over a city at golden hour" + +It wrote me a copy-paste prompt using the exact patterns from the research. That's the skill's real power - research first, then create from what you learned. + +--- + +## Post 12: Thank You + CTA (Final) + +Thank you to ARJ999 and wkbaran on GitHub who kept asking for Hacker News support. Three separate issues. v2.5 delivers. + +30 days. 3.2k stars. 6 sources. Massively better results. + +Try it: /last30days [any topic] + +github.com/mvanhorn/last30days-skill + +--- + +## Post 13: Demo - Anthropic vs Pentagon (Breaking News + Polymarket) + +"/last30days Anthropic Pete Hegseth" + +14 Reddit threads. 29 X posts (11,559 likes). 20 YouTube videos (739K views, 5 transcripts). 5 HN stories. 9 Polymarket markets. 10 web pages. + +This story broke TODAY. Defense Secretary Hegseth designated Anthropic a "supply chain risk" - believed to be the first time an American company has ever received this designation. Trump ordered every federal agency to stop using Anthropic tech. + +Polymarket: Anthropic still 99% for best AI model. $500B+ valuation: 68%. IPO >$600B: 97%. Hegseth out by March 31: only 6%. + +Markets say: Anthropic wins the model race regardless. Bettors don't think Hegseth survives this. That's the kind of signal you can't get from opinion threads. + +--- + +## Post 14: Demo - OpenAI Insider Trading (News + Polymarket) + +"/last30days OpenAI Insider Trading" + +2 Reddit threads. 29 X posts. 4 YouTube videos (360K views, 4 transcripts). 2 HN stories. 15 Polymarket markets. 15 web pages. + +An OpenAI employee was just fired for using confidential info to bet on Polymarket. 13 brand-new wallets appeared 40 hours before the browser launch. $309K bet on the right outcome. Unusual Whales flagged 77 suspected insider positions across 60 wallets. + +Meanwhile Polymarket has OpenAI's IPO at $1.25-1.5T: 54%. Anthropic IPOs first: 62%. Best AI model: Anthropic 99%. + +The prediction markets are both the story AND the source. One command pulled all of it together. + +--- + +## Standalone Tweet: Polymarket Stats Line + +"/last30days Anthropic Pete Hegseth" + +The Pentagon just designated Anthropic a supply chain risk. First time ever for an American company. Trump ordered every agency to stop using their tech. + +Here's what Polymarket says: + +📊 9 markets │ Best AI model: 99% │ $500B+ valuation: 68% │ IPO >$600B: 97% │ Hegseth out by March: 6% + +Bettors with real money on the line think Anthropic wins the model race, goes public at a massive valuation, and Hegseth doesn't survive this. + +That's the gap between headlines and reality. One command, six sources. + +github.com/mvanhorn/last30days-skill + +--- + +## Recommended Thread Order (pick 8-10) + +The full thread above is 12 posts. Here's what I'd cut to keep it tight: + +**Must include (core story):** +1. Post 1 - Lead announcement +2. Post 2 - Polymarket ("Reddit tells you what people think...") +3. Post 3 - Cross-source linking +4. Post 4 - Blinded evaluation + +**Best demos (pick 3-4):** +- Post 13 (Anthropic vs Pentagon) - STRONGEST. Breaking news today. Polymarket cuts through the noise. "Markets say Anthropic wins regardless." +- Post 9 (Claude Code) - All 6 sources. Massive numbers. Shows follow-up flow. +- Post 10 (March Madness) - Sports/Polymarket crossover. Timely with tournament approaching. +- Post 11 (Seedance) - Shows prompting flow. 1.2M YouTube views. +- Post 5 (Anthropic Odds) - Overlaps with Post 13 now. Skip. + +**Skip or save for standalone tweets:** +- Post 5 (Anthropic Odds) - Redundant with Post 13 +- Post 6 (Arizona Basketball) - Covered by March Madness now +- Post 7 (Iran War) - Great standalone tweet, not for launch thread +- Post 8 (Credits/minor features) - Fold into CTA + +**My recommended 8-post thread:** +1. Lead (Post 1) +2. Polymarket (Post 2) +3. Cross-source linking (Post 3) +4. Blinded evaluation (Post 4) +5. Demo: Anthropic vs Pentagon (Post 13) - breaking news, best Polymarket showcase +6. Demo: Claude Code (Post 9) +7. Demo: March Madness (Post 10) +8. Thank you + CTA (Post 12) + +--- + +## Video Script (~60 seconds) + +**[Talking to camera]** + +Oh my god, I can't believe it's been 30 days since I launched last30days. 3,200 stars on GitHub. This has been the craziest month. + +Today I'm shipping v2.5 and I'm really excited about this one. Three big things. + +**[Screen recording: typing /last30days Anthropic Pete Hegseth]** + +First - Polymarket prediction markets as a 6th source. So this Anthropic-Pentagon story broke today. Hegseth designated Anthropic a supply chain risk, Trump ordered agencies to stop using their tech. Scary headline, right? + +But Polymarket says: Anthropic still 99% for best AI model. IPO above 600 billion: 97%. Hegseth out by March: 6%. Real money on outcomes helps you predict the future. That's a different story than the headlines. + +**[Screen recording: typing /last30days arizona basketball]** + +Second - it now searches Hacker News and does cross-source linking. When the same story shows up on Reddit AND YouTube AND HN, it flags it. I ran a 15-way blinded comparison and v2.5 scored 4.38 versus 3.73 for the original. Won all 5 test topics. + +**[Back to camera]** + +Thank you to everyone who starred it, filed issues, and kept pushing me to make this better. Shoutout to the people on GitHub who literally filed three separate issues asking for Hacker News. v2.5 delivers. + +Link in bio. Try it on anything. + +--- + +## Scoring Note + +The 4.38 vs 3.73 score is from a custom 5-dimension rubric (30% groundedness, 25% specificity, 20% coverage, 15% actionability, 10% format compliance) evaluated by Claude on blinded outputs. The relative ranking is meaningful; the absolute numbers are not. It's an LLM grading LLM output - useful for A/B comparison, not for claiming "4.38 out of 5 quality." + +If using the score in a tweet, frame it as "scored X vs Y on a blinded comparison" not "rated 4.38/5.0 quality" - the former is honest, the latter implies an objective standard that doesn't exist. diff --git a/fixtures/eval_topics.json b/fixtures/eval_topics.json new file mode 100644 index 0000000..c98fb4f --- /dev/null +++ b/fixtures/eval_topics.json @@ -0,0 +1,42 @@ +[ + { + "topic": "OpenClaw vs NanoClaw vs ZeroClaw", + "query_type": "comparison", + "rationale": "Multi-entity extraction, 3-way split across AI agent frameworks." + }, + { + "topic": "how to set up a GLP-1 supplement routine", + "query_type": "how_to", + "rationale": "Trending health topic. Tests non-tech how_to." + }, + { + "topic": "2026 March Madness", + "query_type": "breaking_news", + "rationale": "Live sporting event. Tests broad breaking news recall." + }, + { + "topic": "best budget noise cancelling headphones 2026", + "query_type": "product", + "rationale": "Evergreen consumer query. Tests product review aggregation." + }, + { + "topic": "thoughts on OpenAI Codex pricing", + "query_type": "opinion", + "rationale": "Active developer debate. Tests opinion mining." + }, + { + "topic": "odds of US recession 2026", + "query_type": "prediction", + "rationale": "Major macro topic. Tests prediction market + news synthesis." + }, + { + "topic": "what is retrieval augmented generation", + "query_type": "concept", + "rationale": "Widely discussed AI concept. Tests explanation quality." + }, + { + "topic": "Google Wiz acquisition price and timeline", + "query_type": "factual", + "rationale": "Completed event ($32B). Tests factual precision." + } +] diff --git a/fixtures/models_openai_sample.json b/fixtures/models_openai_sample.json new file mode 100644 index 0000000..e972479 --- /dev/null +++ b/fixtures/models_openai_sample.json @@ -0,0 +1,41 @@ +{ + "object": "list", + "data": [ + { + "id": "gpt-5.2", + "object": "model", + "created": 1704067200, + "owned_by": "openai" + }, + { + "id": "gpt-5.1", + "object": "model", + "created": 1701388800, + "owned_by": "openai" + }, + { + "id": "gpt-5", + "object": "model", + "created": 1698710400, + "owned_by": "openai" + }, + { + "id": "gpt-5-mini", + "object": "model", + "created": 1704067200, + "owned_by": "openai" + }, + { + "id": "gpt-4o", + "object": "model", + "created": 1683158400, + "owned_by": "openai" + }, + { + "id": "gpt-4-turbo", + "object": "model", + "created": 1680566400, + "owned_by": "openai" + } + ] +} diff --git a/fixtures/models_xai_sample.json b/fixtures/models_xai_sample.json new file mode 100644 index 0000000..5e571ed --- /dev/null +++ b/fixtures/models_xai_sample.json @@ -0,0 +1,23 @@ +{ + "object": "list", + "data": [ + { + "id": "grok-4-latest", + "object": "model", + "created": 1704067200, + "owned_by": "xai" + }, + { + "id": "grok-4", + "object": "model", + "created": 1701388800, + "owned_by": "xai" + }, + { + "id": "grok-3", + "object": "model", + "created": 1698710400, + "owned_by": "xai" + } + ] +} diff --git a/fixtures/openai_sample.json b/fixtures/openai_sample.json new file mode 100644 index 0000000..ce0d023 --- /dev/null +++ b/fixtures/openai_sample.json @@ -0,0 +1,22 @@ +{ + "id": "resp_mock123", + "object": "response", + "created": 1706140800, + "model": "gpt-5.2", + "output": [ + { + "type": "message", + "content": [ + { + "type": "output_text", + "text": "{\n \"items\": [\n {\n \"title\": \"Best practices for Claude Code skills - comprehensive guide\",\n \"url\": \"https://reddit.com/r/ClaudeAI/comments/abc123/best_practices_for_claude_code_skills\",\n \"subreddit\": \"ClaudeAI\",\n \"date\": \"2026-01-15\",\n \"why_relevant\": \"Detailed discussion of skill creation patterns and best practices\",\n \"relevance\": 0.95\n },\n {\n \"title\": \"How I built a research skill for Claude Code\",\n \"url\": \"https://reddit.com/r/ClaudeAI/comments/def456/how_i_built_a_research_skill\",\n \"subreddit\": \"ClaudeAI\",\n \"date\": \"2026-01-10\",\n \"why_relevant\": \"Real-world example of building a Claude Code skill with API integrations\",\n \"relevance\": 0.90\n },\n {\n \"title\": \"Claude Code vs Cursor vs Windsurf - January 2026 comparison\",\n \"url\": \"https://reddit.com/r/LocalLLaMA/comments/ghi789/claude_code_vs_cursor_vs_windsurf\",\n \"subreddit\": \"LocalLLaMA\",\n \"date\": \"2026-01-08\",\n \"why_relevant\": \"Compares Claude Code features including skills system\",\n \"relevance\": 0.85\n },\n {\n \"title\": \"Tips for effective prompt engineering in Claude Code\",\n \"url\": \"https://reddit.com/r/PromptEngineering/comments/jkl012/tips_for_claude_code_prompts\",\n \"subreddit\": \"PromptEngineering\",\n \"date\": \"2026-01-05\",\n \"why_relevant\": \"Discusses prompt patterns that work well with Claude Code skills\",\n \"relevance\": 0.80\n },\n {\n \"title\": \"New Claude Code update: improved skill loading\",\n \"url\": \"https://reddit.com/r/ClaudeAI/comments/mno345/new_claude_code_update_improved_skill_loading\",\n \"subreddit\": \"ClaudeAI\",\n \"date\": \"2026-01-03\",\n \"why_relevant\": \"Announcement of new skill features in Claude Code\",\n \"relevance\": 0.75\n }\n ]\n}" + } + ] + } + ], + "usage": { + "prompt_tokens": 150, + "completion_tokens": 500, + "total_tokens": 650 + } +} diff --git a/fixtures/reddit_listing_cards_sample.html b/fixtures/reddit_listing_cards_sample.html new file mode 100644 index 0000000..0f176b3 --- /dev/null +++ b/fixtures/reddit_listing_cards_sample.html @@ -0,0 +1,8 @@ + +
+ + + + + +
diff --git a/fixtures/reddit_search_rss_sample.xml b/fixtures/reddit_search_rss_sample.xml new file mode 100644 index 0000000..982c9cd --- /dev/null +++ b/fixtures/reddit_search_rss_sample.xml @@ -0,0 +1,7 @@ + +2026-05-29T14:14:32+00:00https://www.redditstatic.com/icon.png//r/Rakuten/top.rss?t=monthThis is an unofficial subreddit for Rakuten Rewards, the cash back website. We are not affiliated with, endorsed by, or sponsored by Rakuten or any of its subsidiaries.top scoring links : Rakuten/u/InternetUser52https://www.reddit.com/user/InternetUser52<!-- SC_OFF --><div class="md"><p>I&#39;m rich!!</p> </div><!-- SC_ON --> &#32; submitted by &#32; <a href="https://www.reddit.com/user/InternetUser52"> /u/InternetUser52 </a> <br/> <span><a href="https://i.redd.it/q8fgmxs29c2h1.jpeg">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/Rakuten/comments/1tiv013/lets_goo_002/">[comments]</a></span>t3_1tiv0132026-05-20T18:48:31+00:002026-05-20T18:48:31+00:00LETS GOO! $0.02!!! +/u/Immediate-Duck-6351https://www.reddit.com/user/Immediate-Duck-6351<!-- SC_OFF --><div class="md"><p>I don’t travel and I’m buying a house in a few weeks so cash back is amazing 🙌 hoping to keep the pace in the next quarter so I can buy new kitchen appliances lol. </p> </div><!-- SC_ON --> &#32; submitted by &#32; <a href="https://www.reddit.com/user/Immediate-Duck-6351"> /u/Immediate-Duck-6351 </a> <br/> <span><a href="https://i.redd.it/d2a4s0ipvb1h1.jpeg">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/Rakuten/comments/1te1fp8/so_excited/">[comments]</a></span>t3_1te1fp82026-05-15T16:29:28+00:002026-05-15T16:29:28+00:00So excited 🥳 +/u/gnibgnibhttps://www.reddit.com/user/gnibgnib<!-- SC_OFF --><div class="md"><p>128k for the May transfer</p> <p>41k pending for August </p> <p>Got another 9k at Asics not showing but overall pretty happy with Rakuten</p> <p>P2 was able to secure 85k for May transfer</p> </div><!-- SC_ON --> &#32; submitted by &#32; <a href="https://www.reddit.com/user/gnibgnib"> /u/gnibgnib </a> <br/> <span><a href="https://www.reddit.com/gallery/1tb8674">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/Rakuten/comments/1tb8674/had_a_great_run_so_far_this_year_thanks_to_this/">[comments]</a></span>t3_1tb86742026-05-12T17:17:19+00:002026-05-12T17:17:19+00:00Had a great run so far this year thanks to this sub! +/u/TravelVet93https://www.reddit.com/user/TravelVet93&#32; submitted by &#32; <a href="https://www.reddit.com/user/TravelVet93"> /u/TravelVet93 </a> <br/> <span><a href="https://i.redd.it/x6b9whvupb1h1.jpeg">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/Rakuten/comments/1te0hom/my_best_payout_so_far/">[comments]</a></span>t3_1te0hom2026-05-15T15:56:40+00:002026-05-15T15:56:40+00:00My best payout so far +/u/Beautiful-Piece-4252https://www.reddit.com/user/Beautiful-Piece-4252<!-- SC_OFF --><div class="md"><p>The amount of $$ available in sign up bonuses is amazing. It&#39;s kind of a part time job ensuring Rakuten captures everything, but my August and November payout should be sizeable. I&#39;m new to this and it always seemed like a lot of work for little reward. I know it&#39;s not sustainable, but wow!</p> </div><!-- SC_ON --> &#32; submitted by &#32; <a href="https://www.reddit.com/user/Beautiful-Piece-4252"> /u/Beautiful-Piece-4252 </a> <br/> <span><a href="https://i.redd.it/1vqvajsci42h1.jpeg">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/Rakuten/comments/1thsnm1/how_can_this_be_real/">[comments]</a></span>t3_1thsnm12026-05-19T16:46:17+00:002026-05-19T16:46:17+00:00How can this be real? + diff --git a/fixtures/reddit_shreddit_comments_sample.html b/fixtures/reddit_shreddit_comments_sample.html new file mode 100644 index 0000000..97308e6 --- /dev/null +++ b/fixtures/reddit_shreddit_comments_sample.html @@ -0,0 +1,29 @@ + + + + +

Where do you find $750? The highest available package for Total was $284.99 when I did the lifelock promotion. I did get the full 284.99 from Rakuten.

+
+ +

It went to pending ($712.49)

+
+ +

Hey I PM’d. can I get the screenshot ?

+
+ +

Family plan

+
+ +

Price seems to change every time I go to the page but I see only 249.99-369.99 for Total/Advanced. No where near your $750. Just saying the Total plan for 299.99 worked for me and I got 284.99 which is 95%.

+
+ +

I did that one. Let’s pray

+
+ +

[removed]

+
+ +

A downvoted but real reply with negative score for edge-case coverage.

+
+
diff --git a/fixtures/reddit_thread_sample.json b/fixtures/reddit_thread_sample.json new file mode 100644 index 0000000..502d560 --- /dev/null +++ b/fixtures/reddit_thread_sample.json @@ -0,0 +1,108 @@ +[ + { + "kind": "Listing", + "data": { + "children": [ + { + "kind": "t3", + "data": { + "title": "Best practices for Claude Code skills - comprehensive guide", + "score": 847, + "num_comments": 156, + "upvote_ratio": 0.94, + "created_utc": 1705363200, + "permalink": "/r/ClaudeAI/comments/abc123/best_practices_for_claude_code_skills/", + "selftext": "After building 20+ skills for Claude Code, here are my key learnings..." + } + } + ] + } + }, + { + "kind": "Listing", + "data": { + "children": [ + { + "kind": "t1", + "data": { + "score": 234, + "created_utc": 1705366800, + "author": "skill_expert", + "body": "Great guide! One thing I'd add: always use explicit tool permissions in your SKILL.md. Don't default to allowing everything.", + "permalink": "/r/ClaudeAI/comments/abc123/best_practices_for_claude_code_skills/comment1/" + } + }, + { + "kind": "t1", + "data": { + "score": 189, + "created_utc": 1705370400, + "author": "claude_dev", + "body": "The context: fork tip is gold. I was wondering why my heavy research skill was slow - it was blocking the main thread!", + "permalink": "/r/ClaudeAI/comments/abc123/best_practices_for_claude_code_skills/comment2/" + } + }, + { + "kind": "t1", + "data": { + "score": 145, + "created_utc": 1705374000, + "author": "ai_builder", + "body": "For anyone starting out: begin with a simple skill that just runs one bash command. Once that works, build up complexity gradually.", + "permalink": "/r/ClaudeAI/comments/abc123/best_practices_for_claude_code_skills/comment3/" + } + }, + { + "kind": "t1", + "data": { + "score": 98, + "created_utc": 1705377600, + "author": "dev_tips", + "body": "The --mock flag pattern for testing without API calls is essential. I always build that in from day one now.", + "permalink": "/r/ClaudeAI/comments/abc123/best_practices_for_claude_code_skills/comment4/" + } + }, + { + "kind": "t1", + "data": { + "score": 76, + "created_utc": 1705381200, + "author": "code_writer", + "body": "Thanks for sharing! Question: how do you handle API key storage securely in skills?", + "permalink": "/r/ClaudeAI/comments/abc123/best_practices_for_claude_code_skills/comment5/" + } + }, + { + "kind": "t1", + "data": { + "score": 65, + "created_utc": 1705384800, + "author": "security_minded", + "body": "I use ~/.config/skillname/.env with chmod 600. Never hardcode keys, and definitely don't commit them!", + "permalink": "/r/ClaudeAI/comments/abc123/best_practices_for_claude_code_skills/comment6/" + } + }, + { + "kind": "t1", + "data": { + "score": 52, + "created_utc": 1705388400, + "author": "helpful_user", + "body": "The caching pattern you described saved me so much on API costs. 24h TTL is perfect for most research skills.", + "permalink": "/r/ClaudeAI/comments/abc123/best_practices_for_claude_code_skills/comment7/" + } + }, + { + "kind": "t1", + "data": { + "score": 34, + "created_utc": 1705392000, + "author": "newbie_coder", + "body": "This is exactly what I needed. Starting my first skill this weekend!", + "permalink": "/r/ClaudeAI/comments/abc123/best_practices_for_claude_code_skills/comment8/" + } + } + ] + } + } +] diff --git a/fixtures/tiktok_search.json b/fixtures/tiktok_search.json new file mode 100644 index 0000000..f6fa402 --- /dev/null +++ b/fixtures/tiktok_search.json @@ -0,0 +1,58 @@ +{ + "items": [ + { + "video_id": "7543693751290481942", + "text": "This Claude Code trick saved me hours #claudecode #ai #coding", + "url": "https://www.tiktok.com/@codemaster/video/7543693751290481942", + "author_name": "codemaster", + "date": "2026-02-28", + "engagement": { + "views": 2100000, + "likes": 45000, + "comments": 1200, + "shares": 8400 + }, + "hashtags": ["claudecode", "ai", "coding"], + "duration": 45, + "relevance": 0.85, + "why_relevant": "TikTok: This Claude Code trick saved me hours #claude", + "caption_snippet": "So I found this insane trick with Claude Code where you can use slash commands to automate everything" + }, + { + "video_id": "7543100200112345678", + "text": "AI coding tools comparison 2026 - Claude vs Copilot vs Cursor #ai #devtools", + "url": "https://www.tiktok.com/@techreviewer/video/7543100200112345678", + "author_name": "techreviewer", + "date": "2026-02-25", + "engagement": { + "views": 850000, + "likes": 22000, + "comments": 890, + "shares": 3200 + }, + "hashtags": ["ai", "devtools"], + "duration": 60, + "relevance": 0.7, + "why_relevant": "TikTok: AI coding tools comparison 2026 - Claude vs Copi", + "caption_snippet": "" + }, + { + "video_id": "7543200300223456789", + "text": "You need to try Claude Code RIGHT NOW #programming #tips", + "url": "https://www.tiktok.com/@devtips/video/7543200300223456789", + "author_name": "devtips", + "date": "2026-03-01", + "engagement": { + "views": 500000, + "likes": 15000, + "comments": 450, + "shares": 2100 + }, + "hashtags": ["programming", "tips"], + "duration": 30, + "relevance": 0.6, + "why_relevant": "TikTok: You need to try Claude Code RIGHT NOW #programm", + "caption_snippet": "Let me show you why Claude Code is the best AI coding tool right now" + } + ] +} diff --git a/fixtures/xai_sample.json b/fixtures/xai_sample.json new file mode 100644 index 0000000..fd035cb --- /dev/null +++ b/fixtures/xai_sample.json @@ -0,0 +1,22 @@ +{ + "id": "resp_xai_mock456", + "object": "response", + "created": 1706140800, + "model": "grok-4-latest", + "output": [ + { + "type": "message", + "content": [ + { + "type": "output_text", + "text": "{\n \"items\": [\n {\n \"text\": \"Just shipped my first Claude Code skill! The SKILL.md format is incredibly intuitive. Pro tip: use context: fork for resource-intensive operations.\",\n \"url\": \"https://x.com/devuser1/status/1234567890\",\n \"author_handle\": \"devuser1\",\n \"date\": \"2026-01-18\",\n \"engagement\": {\n \"likes\": 542,\n \"reposts\": 87,\n \"replies\": 34,\n \"quotes\": 12\n },\n \"why_relevant\": \"First-hand experience building Claude Code skills with practical tips\",\n \"relevance\": 0.92\n },\n {\n \"text\": \"Thread: Everything I learned building 10 Claude Code skills in 30 days. 1/ Start simple. Your first skill should be < 50 lines of markdown.\",\n \"url\": \"https://x.com/aibuilder/status/1234567891\",\n \"author_handle\": \"aibuilder\",\n \"date\": \"2026-01-12\",\n \"engagement\": {\n \"likes\": 1203,\n \"reposts\": 245,\n \"replies\": 89,\n \"quotes\": 56\n },\n \"why_relevant\": \"Comprehensive thread on skill building best practices\",\n \"relevance\": 0.95\n },\n {\n \"text\": \"The allowed-tools field in SKILL.md is crucial for security. Don't give skills more permissions than they need.\",\n \"url\": \"https://x.com/securitydev/status/1234567892\",\n \"author_handle\": \"securitydev\",\n \"date\": \"2026-01-08\",\n \"engagement\": {\n \"likes\": 328,\n \"reposts\": 67,\n \"replies\": 23,\n \"quotes\": 8\n },\n \"why_relevant\": \"Security best practices for Claude Code skills\",\n \"relevance\": 0.85\n },\n {\n \"text\": \"Loving the new /skill command in Claude Code. Makes testing skills so much easier during development.\",\n \"url\": \"https://x.com/codeenthusiast/status/1234567893\",\n \"author_handle\": \"codeenthusiast\",\n \"date\": \"2026-01-05\",\n \"engagement\": {\n \"likes\": 156,\n \"reposts\": 23,\n \"replies\": 12,\n \"quotes\": 4\n },\n \"why_relevant\": \"Discusses skill development workflow\",\n \"relevance\": 0.78\n }\n ]\n}" + } + ] + } + ], + "usage": { + "prompt_tokens": 180, + "completion_tokens": 450, + "total_tokens": 630 + } +} diff --git a/gemini-extension.json b/gemini-extension.json new file mode 100644 index 0000000..c4cd87a --- /dev/null +++ b/gemini-extension.json @@ -0,0 +1,67 @@ +{ + "name": "last30days-skill", + "version": "3.13.0", + "description": "Research a topic from the last 30 days across Reddit, X, YouTube, TikTok, Instagram, Hacker News, Polymarket, and the web.", + "settings": [ + { + "name": "Extension Directory", + "description": "Extension installation directory (auto-set by Gemini CLI)", + "envVar": "GEMINI_EXTENSION_DIR", + "sensitive": false + }, + { + "name": "ScrapeCreators API Key", + "description": "ScrapeCreators API Key for Reddit, TikTok, and Instagram search (required)", + "envVar": "SCRAPECREATORS_API_KEY", + "sensitive": true + }, + { + "name": "OpenAI API Key", + "description": "OpenAI API Key - optional fallback for Reddit discovery", + "envVar": "OPENAI_API_KEY", + "sensitive": true + }, + { + "name": "xAI API Key", + "description": "xAI API Key for X/Twitter search (optional)", + "envVar": "XAI_API_KEY", + "sensitive": true + }, + { + "name": "OpenRouter API Key", + "description": "OpenRouter API Key (optional)", + "envVar": "OPENROUTER_API_KEY", + "sensitive": true + }, + { + "name": "Parallel AI API Key", + "description": "Parallel AI API Key (optional)", + "envVar": "PARALLEL_API_KEY", + "sensitive": true + }, + { + "name": "Brave Search API Key", + "description": "Brave Search API Key (optional)", + "envVar": "BRAVE_API_KEY", + "sensitive": true + }, + { + "name": "Apify API Token", + "description": "Apify API Token (optional legacy)", + "envVar": "APIFY_API_TOKEN", + "sensitive": true + }, + { + "name": "Twitter AUTH_TOKEN", + "description": "Twitter browser AUTH_TOKEN cookie for direct X search (optional)", + "envVar": "AUTH_TOKEN", + "sensitive": true + }, + { + "name": "Twitter CT0", + "description": "Twitter browser CT0 cookie (optional, pair with AUTH_TOKEN)", + "envVar": "CT0", + "sensitive": true + } + ] +} diff --git a/greptile.json b/greptile.json new file mode 100644 index 0000000..0b4d866 --- /dev/null +++ b/greptile.json @@ -0,0 +1,4 @@ +{ + "triggerOnUpdates": true, + "statusCheck": true +} diff --git a/hooks/hooks.json b/hooks/hooks.json new file mode 100644 index 0000000..2fd710d --- /dev/null +++ b/hooks/hooks.json @@ -0,0 +1,15 @@ +{ + "hooks": { + "SessionStart": [ + { + "matcher": "", + "hooks": [ + { + "type": "command", + "command": "bash \"${CLAUDE_PLUGIN_ROOT:-${extensionPath:-.}}/hooks/scripts/check-config.sh\"" + } + ] + } + ] + } +} diff --git a/hooks/scripts/check-config.sh b/hooks/scripts/check-config.sh new file mode 100755 index 0000000..f9236d3 --- /dev/null +++ b/hooks/scripts/check-config.sh @@ -0,0 +1,273 @@ +#!/bin/bash +set -euo pipefail + +# Check last30days configuration status and show appropriate welcome message. +# Priority for this status hook: +# .claude/last30days.env > ~/.config/last30days/.env > env vars > Keychain presence + +PROJECT_ENV=".claude/last30days.env" +GLOBAL_ENV="$HOME/.config/last30days/.env" +if [[ "${LAST30DAYS_CONFIG_DIR+x}" == "x" ]]; then + if [[ -n "$LAST30DAYS_CONFIG_DIR" ]]; then + GLOBAL_ENV="$LAST30DAYS_CONFIG_DIR/.env" + else + GLOBAL_ENV="" + fi +fi + +# Ensure LAST30DAYS_MEMORY_DIR exists for HTML-brief / raw-markdown saves. +# SKILL.md and the engine default this via the same env-var fallback. Fresh +# installs otherwise fail silently on first --emit=html run. See #395. +mkdir -p "${LAST30DAYS_MEMORY_DIR:-$HOME/Documents/Last30Days}" 2>/dev/null || true + +# Helper: warn if file permissions are too open +check_perms() { + local file="$1" + if [[ ! -f "$file" ]]; then return; fi + # Git-for-Windows / MSYS / Cygwin run stat in noacl mode (always 644), + # so this POSIX check is a false positive. Windows perms use ACLs. + case "$(uname -s 2>/dev/null)" in + MINGW*|MSYS*|CYGWIN*) return ;; + esac + local perms + # Try GNU stat first (Linux), fall back to BSD stat (macOS). + # On Linux, `stat -f` prints filesystem info (not permissions) and exits 0, + # so the previous BSD-first ordering left $perms as multi-line garbage on + # every Linux session start and printed a false WARNING. + perms=$(stat -c '%a' "$file" 2>/dev/null || stat -f '%Lp' "$file" 2>/dev/null || echo "") + if [[ -n "$perms" && "$perms" != "600" && "$perms" != "400" ]]; then + chmod 600 "$file" && echo "/last30days: WARNING — $file had permissions $perms — auto-fixed with chmod 600" || echo "/last30days: WARNING — $file has permissions $perms (should be 600). Fix: chmod 600 $file" + fi +} + +trim_ws() { + local s="$1" + s="${s#"${s%%[![:space:]]*}"}" + s="${s%"${s##*[![:space:]]}"}" + printf '%s' "$s" +} + +strip_outer_quotes() { + local s="$1" + if [[ ${#s} -ge 2 ]]; then + if [[ "${s:0:1}" == '"' && "${s: -1}" == '"' ]]; then + s="${s:1:${#s}-2}" + elif [[ "${s:0:1}" == "'" && "${s: -1}" == "'" ]]; then + s="${s:1:${#s}-2}" + fi + fi + printf '%s' "$s" +} + +# Load env file into variables for inspection (without exporting) +load_env_vars() { + local file="$1" + if [[ -f "$file" ]]; then + while IFS='=' read -r key value; do + # Skip comments, empty lines + [[ "$key" =~ ^[[:space:]]*# ]] && continue + [[ -z "$key" ]] && continue + key="$(trim_ws "$key")" + value="$(strip_outer_quotes "$(trim_ws "$value")")" + # Strip inline comments (# preceded by whitespace) to prevent + # command substitution in backtick-containing comments + value="${value%%[[:space:]]#*}" + if [[ -n "$key" && -n "$value" ]]; then + # printf -v writes via assignment semantics (global from inside a + # function), works on macOS's /bin/bash 3.2 — `declare -g` is 4.2+. + printf -v "ENV_${key}" '%s' "$value" + fi + done < "$file" + fi +} + +# Determine which config file is active +CONFIG_FILE="" +if [[ -f "$PROJECT_ENV" ]]; then + CONFIG_FILE="$PROJECT_ENV" + check_perms "$PROJECT_ENV" +elif [[ -f "$GLOBAL_ENV" ]]; then + CONFIG_FILE="$GLOBAL_ENV" + check_perms "$GLOBAL_ENV" +fi + +# Load config if found +if [[ -n "$CONFIG_FILE" ]]; then + load_env_vars "$CONFIG_FILE" +fi + +# Load Keychain item presence for status checks without reading secret values. +# Runtime credential resolution still happens in lib/env.py; this hook only +# needs to avoid stale first-run/source-count messages. +load_keychain_presence() { + case "$(uname -s 2>/dev/null)" in + Darwin*) ;; + *) return 0 ;; + esac + command -v security >/dev/null 2>&1 || return 0 + + local user key env_var current + user="${USER:-}" + if [[ -z "$user" ]]; then + user="$(id -un 2>/dev/null || true)" + fi + [[ -n "$user" ]] || return 0 + + for key in SETUP_COMPLETE OPENAI_API_KEY SCRAPECREATORS_API_KEY AUTH_TOKEN CT0 XAI_API_KEY BSKY_HANDLE EXA_API_KEY; do + env_var="ENV_${key}" + current="${!env_var:-}" + if [[ -z "$current" ]]; then + current="${!key:-}" + fi + [[ -n "$current" ]] && continue + if security find-generic-password -a "$user" -s "last30days-${key}" >/dev/null 2>&1; then + printf -v "ENV_${key}" '%s' "keychain" + fi + done + return 0 +} + +load_keychain_presence + +# Check SETUP_COMPLETE (from file, env, or Keychain presence) +SETUP_COMPLETE="${ENV_SETUP_COMPLETE:-${SETUP_COMPLETE:-}}" + +# Compute last-run summary line (if last-run.json exists) +if [[ "${LAST30DAYS_CONFIG_DIR+x}" == "x" ]]; then + if [[ -n "$LAST30DAYS_CONFIG_DIR" ]]; then + LAST_RUN_FILE="$LAST30DAYS_CONFIG_DIR/last-run.json" + else + LAST_RUN_FILE="" + fi +else + LAST_RUN_FILE="$HOME/.config/last30days/last-run.json" +fi +LAST_RUN_LINE="" +# python3 -c, NOT a heredoc: bash 5.3 feeds heredocs to the child through a +# pipe and can deadlock in heredoc_write inside command substitution, hanging +# this hook forever at session start (observed on Homebrew bash 5.3.15). +if [[ -n "$LAST_RUN_FILE" && -f "$LAST_RUN_FILE" ]] && command -v python3 &>/dev/null; then + LAST_RUN_LINE=$(LAST_RUN_FILE="$LAST_RUN_FILE" python3 -c ' +import datetime +import json +import os + +path = os.environ["LAST_RUN_FILE"] +try: + with open(path) as fh: + d = json.load(fh) + topic = (d.get("topic") or "?")[:60] + ts = d.get("timestamp", "") + dt = datetime.datetime.fromisoformat(ts.replace("Z", "+00:00")) + delta = (datetime.datetime.now(datetime.timezone.utc) - dt).total_seconds() + if delta < 60: ago = f"{int(delta)}s ago" + elif delta < 3600: ago = f"{int(delta//60)}m ago" + elif delta < 86400: ago = f"{int(delta//3600)}h ago" + else: ago = f"{int(delta//86400)}d ago" + total = d.get("total", 0) + print(f" Last run: \"{topic}\" · {ago} · {total} results") +except Exception: + pass +' 2>/dev/null || true) +fi + +# Detect capability that doesn't need a config file: yt-dlp on PATH. +# Done before the new-user early-exit so first-run users with yt-dlp +# installed see YouTube is already available. See #394. +HAS_YTDLP="" +if command -v yt-dlp &>/dev/null; then + HAS_YTDLP="yes" +fi + +# If setup has never been run, show welcome message for new users +if [[ -z "$SETUP_COMPLETE" && -z "$CONFIG_FILE" && -z "${ENV_OPENAI_API_KEY:-${OPENAI_API_KEY:-}}" && -z "${ENV_SCRAPECREATORS_API_KEY:-${SCRAPECREATORS_API_KEY:-}}" && -z "${ENV_AUTH_TOKEN:-${AUTH_TOKEN:-}}" && -z "${ENV_XAI_API_KEY:-${XAI_API_KEY:-}}" ]]; then + # printf, NOT cat-with-heredoc: see the bash 5.3 heredoc deadlock note above. + if [[ -n "$HAS_YTDLP" ]]; then + # YouTube is already working via the on-system yt-dlp binary — don't list + # it as something the wizard needs to unlock. See #394. + printf '%s\n' \ + '/last30days: Ready to use. Run /last30days to get started — setup takes 30 seconds.' \ + ' Research any topic across Reddit, HN, X, YouTube, Polymarket (last 30 days).' \ + '' \ + 'Reddit, Hacker News, Polymarket, and YouTube (yt-dlp detected) work out of the box.' \ + 'The setup wizard can unlock X/Twitter and more.' \ + ' Detected: yt-dlp is installed (YouTube transcripts ready, no setup needed).' + else + printf '%s\n' \ + '/last30days: Ready to use. Run /last30days to get started — setup takes 30 seconds.' \ + ' Research any topic across Reddit, HN, X, YouTube, Polymarket (last 30 days).' \ + '' \ + 'Reddit, Hacker News, and Polymarket work out of the box.' \ + 'The setup wizard can unlock X/Twitter, YouTube, and more.' + fi + if [[ -n "$LAST_RUN_LINE" ]]; then + echo "$LAST_RUN_LINE" + fi + exit 0 +fi + +# Setup done but check for ScrapeCreators +HAS_SCRAPECREATORS="${ENV_SCRAPECREATORS_API_KEY:-${SCRAPECREATORS_API_KEY:-}}" +HAS_X="" +if [[ -n "${ENV_AUTH_TOKEN:-${AUTH_TOKEN:-}}" && -n "${ENV_CT0:-${CT0:-}}" ]]; then + HAS_X="yes" +fi +HAS_XAI="${ENV_XAI_API_KEY:-${XAI_API_KEY:-}}" +HAS_BSKY="${ENV_BSKY_HANDLE:-${BSKY_HANDLE:-}}" +HAS_EXA="${ENV_EXA_API_KEY:-${EXA_API_KEY:-}}" + +# Count active sources +SOURCE_COUNT=2 # HN + Polymarket are always free +if [[ -n "$HAS_X" || -n "$HAS_XAI" ]]; then + SOURCE_COUNT=$((SOURCE_COUNT + 1)) +fi +# Reddit public JSON always works +SOURCE_COUNT=$((SOURCE_COUNT + 1)) +if [[ -n "$HAS_YTDLP" ]]; then + SOURCE_COUNT=$((SOURCE_COUNT + 1)) +fi +if [[ -n "$HAS_EXA" ]]; then + SOURCE_COUNT=$((SOURCE_COUNT + 1)) +fi +if [[ -n "$HAS_BSKY" ]]; then + SOURCE_COUNT=$((SOURCE_COUNT + 1)) +fi +if [[ -n "$HAS_SCRAPECREATORS" ]]; then + # Start with Reddit comments + TikTok + Instagram, subtract any in EXCLUDE_SOURCES. + # Normalise EXCLUDED by removing whitespace; case-insensitive matches below + # mirror pipeline.py's .strip().lower() parsing without requiring sed/tr. + SC_ADD=3 + EXCLUDED="${ENV_EXCLUDE_SOURCES:-${EXCLUDE_SOURCES:-}}" + EXCLUDED_NORM="${EXCLUDED//[[:space:]]/}" + if [[ ",$EXCLUDED_NORM," == *",[Tt][Ii][Kk][Tt][Oo][Kk],"* ]]; then + SC_ADD=$((SC_ADD - 1)) + fi + if [[ ",$EXCLUDED_NORM," == *",[Ii][Nn][Ss][Tt][Aa][Gg][Rr][Aa][Mm],"* ]]; then + SC_ADD=$((SC_ADD - 1)) + fi + SOURCE_COUNT=$((SOURCE_COUNT + SC_ADD)) +fi + +if [[ -n "$HAS_SCRAPECREATORS" ]]; then + # Fully configured — compact ready message + echo "/last30days: Ready — ${SOURCE_COUNT} sources active." + echo " Research any topic across social + market + web sources (last 30 days)." + if [[ -n "$LAST_RUN_LINE" ]]; then + echo "$LAST_RUN_LINE" + fi +else + # Setup done but missing ScrapeCreators — recommend it + echo "/last30days: Ready — ${SOURCE_COUNT} sources active." + echo " Research any topic across social + market + web sources (last 30 days)." + if [[ -n "$LAST_RUN_LINE" ]]; then + echo "$LAST_RUN_LINE" + fi + echo " Tip: Add ScrapeCreators for Reddit comments + TikTok + Instagram." + echo " 100 free credits, no credit card — scrapecreators.com" + echo " last30days has no affiliation with any API provider." +fi + +# The branches above end with `[[ -n "$LAST_RUN_LINE" ]] && echo ...`. When +# LAST_RUN_LINE is empty, that test returns 1 and is the script's last command, +# leaking exit=1 to callers (e.g. SessionStart hook drivers) despite no error. +exit 0 diff --git a/mcp/.gitignore b/mcp/.gitignore new file mode 100644 index 0000000..22541f7 --- /dev/null +++ b/mcp/.gitignore @@ -0,0 +1,12 @@ +# Mirror of skills/last30days/scripts/, populated by scripts/sync-engine.sh. +# Source of truth lives in the Python skill; never commit the mirror. +# Lives inside internal/engine/ because //go:embed cannot reach outside +# its own package directory. +internal/engine/vendored/* +!internal/engine/vendored/.gitkeep + +# Local build output: cross-compiled binaries and packaged .mcpb files. +build/ +# Anchor to the mcp/ root so the cmd/last30days-pp-mcp/ package directory +# is not also excluded (subdirs with the same name would otherwise match). +/last30days-pp-mcp diff --git a/mcp/README.md b/mcp/README.md new file mode 100644 index 0000000..2f1d260 --- /dev/null +++ b/mcp/README.md @@ -0,0 +1,36 @@ +# last30days-pp-mcp + +Go MCP server that wraps the last30days Python engine for Claude Desktop. Packaged as a `.mcpb` bundle (drag-drop install into Claude Desktop). + +The MCP server exposes a single `research` tool that mirrors the `/last30days ` slash command available in Claude Code. At runtime the binary extracts the vendored Python engine into a per-user cache and shells out to `python3` to produce the synthesis input Claude renders. + +## Architecture + +- `cmd/last30days-pp-mcp/` - server entry point +- `internal/engine/` - `embed.FS` of the Python engine + cache extractor + subprocess wrapper +- `internal/tools/` - MCP tool handlers (currently `research`) +- `internal/engine/vendored/` - mirror of `skills/last30days/scripts/`, generated by `scripts/sync-engine.sh` (gitignored). Lives inside the engine package because `//go:embed` cannot reach files outside its own package directory. +- `manifest.json` - MCPB v0.3 manifest consumed by Claude Desktop and `printing-press bundle` + +## Local build + +```bash +# Mirror the Python engine into vendored/. +bash scripts/sync-engine.sh + +# Build for the current host. +go build -ldflags "-X main.Version=dev" -o build/last30days-pp-mcp ./cmd/last30days-pp-mcp + +# Package as a .mcpb (requires the printing-press binary on PATH). +printing-press bundle . --skip-build --binary build/last30days-pp-mcp +``` + +The output `.mcpb` lands at `build/last30days-pp-mcp--.mcpb`. Drag it into Claude Desktop's Extensions panel to install. + +## Runtime requirements + +End users need Python 3.12+ on PATH. The bundle ships the engine source but relies on the host interpreter. + +## Versioning + +The MCPB `manifest.json` version is hand-bumped in the same PR that ships engine changes worth releasing. Release CI stamps the Go binary's `main.Version` from the tag. diff --git a/mcp/cmd/last30days-pp-mcp/main.go b/mcp/cmd/last30days-pp-mcp/main.go new file mode 100644 index 0000000..1a97faf --- /dev/null +++ b/mcp/cmd/last30days-pp-mcp/main.go @@ -0,0 +1,39 @@ +// Package main is the entry point for the last30days MCP server bundled +// as a .mcpb for Claude Desktop. The server registers a single research +// tool (see internal/tools) and serves it over stdio. See mcp/README.md +// for build and packaging instructions. +package main + +import ( + "fmt" + "os" + + "github.com/mark3labs/mcp-go/server" + + "github.com/mvanhorn/last30days-skill/mcp/internal/tools" +) + +// Version is stamped at build time via -ldflags "-X main.Version=". +// It namespaces the per-user cache directory in internal/engine so multiple +// installed versions can coexist without clobbering each other. +var Version = "dev" + +const ( + serverName = "last30days" + serverVersion = "1" +) + +func main() { + s := server.NewMCPServer( + serverName, + serverVersion, + server.WithToolCapabilities(false), + ) + + tools.Register(s, tools.Config{Version: Version}) + + if err := server.ServeStdio(s); err != nil { + fmt.Fprintf(os.Stderr, "last30days-pp-mcp: %v\n", err) + os.Exit(1) + } +} diff --git a/mcp/go.mod b/mcp/go.mod new file mode 100644 index 0000000..9a1857c --- /dev/null +++ b/mcp/go.mod @@ -0,0 +1,14 @@ +module github.com/mvanhorn/last30days-skill/mcp + +go 1.25.5 + +require github.com/mark3labs/mcp-go v0.55.0 + +require ( + github.com/google/jsonschema-go v0.4.2 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 // indirect + github.com/spf13/cast v1.7.1 // indirect + github.com/yosida95/uritemplate/v3 v3.0.2 // indirect + golang.org/x/text v0.14.0 // indirect +) diff --git a/mcp/go.sum b/mcp/go.sum new file mode 100644 index 0000000..bbc555a --- /dev/null +++ b/mcp/go.sum @@ -0,0 +1,34 @@ +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dlclark/regexp2 v1.11.0 h1:G/nrcoOa7ZXlpoa/91N3X7mM3r8eIlMBBJZvsz/mxKI= +github.com/dlclark/regexp2 v1.11.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/jsonschema-go v0.4.2 h1:tmrUohrwoLZZS/P3x7ex0WAVknEkBZM46iALbcqoRA8= +github.com/google/jsonschema-go v0.4.2/go.mod h1:r5quNTdLOYEz95Ru18zA0ydNbBuYoo9tgaYcxEYhJVE= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/mark3labs/mcp-go v0.55.0 h1:lJfz2aoctiwK+sI991+uIYwmKNIBciI+O7zsyDsa4U8= +github.com/mark3labs/mcp-go v0.55.0/go.mod h1:+8WclSK1ZUweCP3hvktSji8n8ABG/95QaEkeVE/Uwas= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= +github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= +github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 h1:KRzFb2m7YtdldCEkzs6KqmJw4nqEVZGK7IN2kJkjTuQ= +github.com/santhosh-tekuri/jsonschema/v6 v6.0.2/go.mod h1:JXeL+ps8p7/KNMjDQk3TCwPpBy0wYklyWTfbkIzdIFU= +github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y= +github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/yosida95/uritemplate/v3 v3.0.2 h1:Ed3Oyj9yrmi9087+NczuL5BwkIc4wvTb5zIM+UJPGz4= +github.com/yosida95/uritemplate/v3 v3.0.2/go.mod h1:ILOh0sOhIJR3+L/8afwt/kE++YT040gmv5BQTMR2HP4= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/mcp/internal/engine/embed.go b/mcp/internal/engine/embed.go new file mode 100644 index 0000000..3e33f29 --- /dev/null +++ b/mcp/internal/engine/embed.go @@ -0,0 +1,26 @@ +// Package engine wraps the vendored Python last30days engine. The engine +// is embedded at build time via //go:embed and extracted into a per-user +// cache directory on first use, then invoked through python3 in a +// subprocess. Consumers should call EnsureUserCache to materialize the +// engine and Run to execute it. +package engine + +import ( + "embed" + "io/fs" +) + +// EngineSourceDir is the embed root inside the binary. scripts/sync-engine.sh +// mirrors skills/last30days/scripts/ into this directory before each build. +// The all: prefix preserves files starting with "." or "_" so the .gitkeep +// anchor file survives - without it the embed would error before sync runs. +// +//go:embed all:vendored +var vendored embed.FS + +// EngineFS returns the embedded engine as a filesystem rooted at the +// vendored/ directory contents (so callers see "last30days.py" at the +// root, not "vendored/last30days.py"). +func EngineFS() (fs.FS, error) { + return fs.Sub(vendored, "vendored") +} diff --git a/mcp/internal/engine/extract.go b/mcp/internal/engine/extract.go new file mode 100644 index 0000000..6342dbb --- /dev/null +++ b/mcp/internal/engine/extract.go @@ -0,0 +1,168 @@ +package engine + +import ( + "errors" + "fmt" + "io" + "io/fs" + "os" + "path/filepath" + "sync" +) + +// SentinelFilename names the file Ensure writes inside the cache directory +// after a successful extraction. Its contents are compared to the requested +// version; a match short-circuits re-extraction on subsequent calls. +const SentinelFilename = ".version" + +// cacheSubdir namespaces our cache under the OS user cache directory so +// multiple printing-press-style bundles can coexist. +const cacheSubdir = "last30days-pp-mcp" + +// CacheEnvOverride lets users redirect the cache directory when the default +// OS cache location is read-only (locked-down corp images, ephemeral CI +// containers). Pointed at by extract errors via the documented escape hatch. +const CacheEnvOverride = "LAST30DAYS_CACHE_DIR" + +// Ensure extracts src into baseDir/last30days-pp-mcp/ and returns +// the cache path. If the sentinel file already records the same version the +// directory is reused without rewriting. version must be non-empty so the +// cache layout always namespaces by version. +// +// Extraction writes to a sibling .tmp directory and renames it on success +// so a partial extraction can never be mistaken for a complete one. Concurrent +// callers within the same process serialize behind a per-cache-dir sync.Once +// so the rename happens exactly once. +func Ensure(src fs.FS, baseDir, version string) (string, error) { + if version == "" { + return "", errors.New("engine: version is required") + } + cacheDir := filepath.Join(baseDir, cacheSubdir, version) + + once := getOnce(cacheDir) + var extractErr error + once.Do(func() { + extractErr = ensureLocked(src, cacheDir, version) + }) + if extractErr != nil { + // Reset the sync.Once so a follow-up call can retry rather than + // permanently caching the error. Retry is the right default when + // the failure is transient (e.g., disk full, parent dir restored). + resetOnce(cacheDir) + return "", extractErr + } + return cacheDir, nil +} + +// EnsureUserCache wraps Ensure with the OS user cache dir (or the +// LAST30DAYS_CACHE_DIR override) as base. Production callers use this; tests +// use Ensure with an explicit temp dir. +func EnsureUserCache(src fs.FS, version string) (string, error) { + if override := os.Getenv(CacheEnvOverride); override != "" { + return Ensure(src, override, version) + } + base, err := os.UserCacheDir() + if err != nil { + return "", fmt.Errorf("engine: resolve user cache dir (set %s to override): %w", CacheEnvOverride, err) + } + return Ensure(src, base, version) +} + +func ensureLocked(src fs.FS, cacheDir, version string) error { + if sentinelMatches(cacheDir, version) { + return nil + } + tmpDir := cacheDir + ".tmp" + if err := os.RemoveAll(tmpDir); err != nil { + return fmt.Errorf("engine: clean tmp cache: %w", err) + } + if err := os.MkdirAll(tmpDir, 0o755); err != nil { + return fmt.Errorf("engine: create tmp cache (%s, set %s to override): %w", tmpDir, CacheEnvOverride, err) + } + if err := extractAll(src, tmpDir); err != nil { + _ = os.RemoveAll(tmpDir) + return err + } + sentinel := filepath.Join(tmpDir, SentinelFilename) + if err := os.WriteFile(sentinel, []byte(version), 0o644); err != nil { + _ = os.RemoveAll(tmpDir) + return fmt.Errorf("engine: write sentinel: %w", err) + } + if err := os.RemoveAll(cacheDir); err != nil { + _ = os.RemoveAll(tmpDir) + return fmt.Errorf("engine: clean old cache: %w", err) + } + if err := os.Rename(tmpDir, cacheDir); err != nil { + _ = os.RemoveAll(tmpDir) + return fmt.Errorf("engine: promote tmp cache: %w", err) + } + return nil +} + +func sentinelMatches(cacheDir, version string) bool { + data, err := os.ReadFile(filepath.Join(cacheDir, SentinelFilename)) + if err != nil { + return false + } + return string(data) == version +} + +func extractAll(src fs.FS, dst string) error { + return fs.WalkDir(src, ".", func(path string, d fs.DirEntry, err error) error { + if err != nil { + return err + } + if path == "." { + return nil + } + target := filepath.Join(dst, path) + if d.IsDir() { + return os.MkdirAll(target, 0o755) + } + return copyEmbeddedFile(src, path, target) + }) +} + +func copyEmbeddedFile(src fs.FS, srcPath, dst string) error { + in, err := src.Open(srcPath) + if err != nil { + return fmt.Errorf("engine: open %s: %w", srcPath, err) + } + defer func() { _ = in.Close() }() + if err := os.MkdirAll(filepath.Dir(dst), 0o755); err != nil { + return fmt.Errorf("engine: ensure parent of %s: %w", dst, err) + } + out, err := os.OpenFile(dst, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0o644) + if err != nil { + return fmt.Errorf("engine: create %s: %w", dst, err) + } + defer func() { _ = out.Close() }() + if _, err := io.Copy(out, in); err != nil { + return fmt.Errorf("engine: write %s: %w", dst, err) + } + return nil +} + +// onceRegistry serializes first-call extraction per cache directory so the +// rename in ensureLocked happens exactly once across goroutines. +var ( + onceMu sync.Mutex + onceRegistry = map[string]*sync.Once{} +) + +func getOnce(cacheDir string) *sync.Once { + onceMu.Lock() + defer onceMu.Unlock() + if o, ok := onceRegistry[cacheDir]; ok { + return o + } + o := &sync.Once{} + onceRegistry[cacheDir] = o + return o +} + +func resetOnce(cacheDir string) { + onceMu.Lock() + defer onceMu.Unlock() + delete(onceRegistry, cacheDir) +} diff --git a/mcp/internal/engine/extract_test.go b/mcp/internal/engine/extract_test.go new file mode 100644 index 0000000..c4c0a3a --- /dev/null +++ b/mcp/internal/engine/extract_test.go @@ -0,0 +1,167 @@ +package engine + +import ( + "os" + "path/filepath" + "sync" + "testing" + "testing/fstest" +) + +func newTestFS() fstest.MapFS { + return fstest.MapFS{ + "last30days.py": &fstest.MapFile{Data: []byte("# last30days entry\n"), Mode: 0o644}, + "lib/__init__.py": &fstest.MapFile{Data: []byte(""), Mode: 0o644}, + "lib/env.py": &fstest.MapFile{Data: []byte("# env helpers\n"), Mode: 0o644}, + } +} + +func TestEnsureExtractsEngine(t *testing.T) { + src := newTestFS() + base := t.TempDir() + + cacheDir, err := Ensure(src, base, "v1") + if err != nil { + t.Fatalf("Ensure: %v", err) + } + if cacheDir != filepath.Join(base, cacheSubdir, "v1") { + t.Fatalf("cacheDir = %q, want %q", cacheDir, filepath.Join(base, cacheSubdir, "v1")) + } + mustReadFile(t, filepath.Join(cacheDir, "last30days.py"), "# last30days entry\n") + mustReadFile(t, filepath.Join(cacheDir, "lib/env.py"), "# env helpers\n") + mustReadFile(t, filepath.Join(cacheDir, SentinelFilename), "v1") +} + +func TestEnsureSkipsWhenSentinelMatches(t *testing.T) { + src := newTestFS() + base := t.TempDir() + + cacheDir, err := Ensure(src, base, "v1") + if err != nil { + t.Fatalf("first Ensure: %v", err) + } + target := filepath.Join(cacheDir, "last30days.py") + info1, err := os.Stat(target) + if err != nil { + t.Fatalf("stat: %v", err) + } + + // Reset the sync.Once so a second call would re-extract if not for the + // sentinel short-circuit. Without the reset, sync.Once would skip the + // extraction regardless of sentinel state. + resetOnce(cacheDir) + + if _, err := Ensure(src, base, "v1"); err != nil { + t.Fatalf("second Ensure: %v", err) + } + info2, err := os.Stat(target) + if err != nil { + t.Fatalf("stat second: %v", err) + } + if !info2.ModTime().Equal(info1.ModTime()) { + t.Fatalf("expected file untouched on sentinel match; got mtime %v -> %v", info1.ModTime(), info2.ModTime()) + } +} + +func TestEnsureReExtractsOnVersionChange(t *testing.T) { + v1 := fstest.MapFS{ + "last30days.py": &fstest.MapFile{Data: []byte("v1\n"), Mode: 0o644}, + } + v2 := fstest.MapFS{ + "last30days.py": &fstest.MapFile{Data: []byte("v2\n"), Mode: 0o644}, + } + base := t.TempDir() + + cache1, err := Ensure(v1, base, "v1") + if err != nil { + t.Fatalf("Ensure v1: %v", err) + } + cache2, err := Ensure(v2, base, "v2") + if err != nil { + t.Fatalf("Ensure v2: %v", err) + } + if cache1 == cache2 { + t.Fatalf("expected distinct cache dirs per version, got %q == %q", cache1, cache2) + } + mustReadFile(t, filepath.Join(cache1, "last30days.py"), "v1\n") + mustReadFile(t, filepath.Join(cache2, "last30days.py"), "v2\n") +} + +func TestEnsureConcurrentFirstCall(t *testing.T) { + src := newTestFS() + base := t.TempDir() + + const goroutines = 10 + var wg sync.WaitGroup + wg.Add(goroutines) + results := make([]string, goroutines) + errs := make([]error, goroutines) + for i := 0; i < goroutines; i++ { + i := i + go func() { + defer wg.Done() + results[i], errs[i] = Ensure(src, base, "v1") + }() + } + wg.Wait() + + for i, err := range errs { + if err != nil { + t.Fatalf("goroutine %d: %v", i, err) + } + } + for i := 1; i < goroutines; i++ { + if results[i] != results[0] { + t.Fatalf("goroutine 0 saw %q, goroutine %d saw %q", results[0], i, results[i]) + } + } + mustReadFile(t, filepath.Join(results[0], "last30days.py"), "# last30days entry\n") +} + +func TestEnsureRejectsEmptyVersion(t *testing.T) { + if _, err := Ensure(newTestFS(), t.TempDir(), ""); err == nil { + t.Fatal("expected error for empty version") + } +} + +func TestEnsureReturnsErrorWhenCacheUnwritable(t *testing.T) { + // Place the cache root at a path that cannot exist (a regular file). + // MkdirAll will refuse and Ensure must surface a wrapped error. + base := t.TempDir() + blocker := filepath.Join(base, "blocker") + if err := os.WriteFile(blocker, []byte("not a dir"), 0o644); err != nil { + t.Fatalf("setup: %v", err) + } + + _, err := Ensure(newTestFS(), blocker, "v1") + if err == nil { + t.Fatal("expected error when cache parent is not a directory") + } +} + +func TestEnsureUserCacheHonorsOverride(t *testing.T) { + override := t.TempDir() + t.Setenv(CacheEnvOverride, override) + + src := newTestFS() + cacheDir, err := EnsureUserCache(src, "v1") + if err != nil { + t.Fatalf("EnsureUserCache: %v", err) + } + want := filepath.Join(override, cacheSubdir, "v1") + if cacheDir != want { + t.Fatalf("cacheDir = %q, want %q", cacheDir, want) + } + mustReadFile(t, filepath.Join(cacheDir, "last30days.py"), "# last30days entry\n") +} + +func mustReadFile(t *testing.T, path, want string) { + t.Helper() + data, err := os.ReadFile(path) + if err != nil { + t.Fatalf("read %s: %v", path, err) + } + if string(data) != want { + t.Fatalf("%s: got %q, want %q", path, string(data), want) + } +} diff --git a/mcp/internal/engine/run.go b/mcp/internal/engine/run.go new file mode 100644 index 0000000..4933966 --- /dev/null +++ b/mcp/internal/engine/run.go @@ -0,0 +1,163 @@ +package engine + +import ( + "bytes" + "context" + "errors" + "fmt" + "os" + "os/exec" + "path/filepath" + "runtime" + "strings" + "time" +) + +// DefaultPythonBinary is the interpreter we look up unless RunOptions +// overrides it. Windows installs may expose only "python"; we surface a +// clear error in that case rather than silently picking the wrong binary. +const DefaultPythonBinary = "python3" + +// MinPythonVersion mirrors the engine's MIN_PYTHON constant in +// last30days.py. Surfaced in errors so users know what they're missing. +const MinPythonVersion = "3.12" + +// PythonInstallURL is included in the missing-interpreter error so users +// have a direct route from the failure to a fix. +const PythonInstallURL = "https://www.python.org/downloads/" + +// DefaultTimeout caps a single research subprocess. The engine's deep mode +// can run several minutes; five minutes is a safe upper bound that still +// fails fast when something hangs. +const DefaultTimeout = 5 * time.Minute + +// TimeoutEnvOverride lets operators override DefaultTimeout per install +// (seconds, integer). Honored by Run when RunOptions.Timeout is zero. +const TimeoutEnvOverride = "LAST30DAYS_MCP_TIMEOUT" + +// RunOptions configures one invocation of the embedded Python engine. +// PythonPath is exposed so tests can substitute a stub interpreter without +// manipulating the process PATH. +type RunOptions struct { + PythonPath string // resolved python3 binary; empty means look up DefaultPythonBinary on PATH + CacheDir string // engine.Ensure result; lib/ here is added to PYTHONPATH + Args []string // arguments after last30days.py (topic, --emit=..., etc.) + ExtraEnv []string // appended to os.Environ() for the child process + Timeout time.Duration // zero means DefaultTimeout or TimeoutEnvOverride +} + +// RunResult captures the engine's full output. Stdout is what we surface to +// the agent; Stderr is included in error messages so users can diagnose +// engine failures without leaving Claude Desktop. +type RunResult struct { + Stdout []byte + Stderr []byte + ExitCode int + TimedOut bool +} + +// Run shells out to python3 with last30days.py inside cacheDir. The child +// receives the parent environment (so MCPB user_config env-injection +// reaches the engine) plus ExtraEnv and a PYTHONPATH that points at the +// cache so the engine's `from lib import ...` statements resolve. +// +// A missing interpreter, a non-zero exit, and a timeout each surface as +// distinct errors so the tool handler can map them to user-facing +// messages without re-parsing stderr. +func Run(ctx context.Context, opts RunOptions) (*RunResult, error) { + if opts.CacheDir == "" { + return nil, errors.New("engine: CacheDir is required") + } + pythonPath, err := resolvePython(opts.PythonPath) + if err != nil { + return nil, err + } + + scriptPath := filepath.Join(opts.CacheDir, "last30days.py") + if _, err := os.Stat(scriptPath); err != nil { + return nil, fmt.Errorf("engine: last30days.py not found in cache %s: %w", opts.CacheDir, err) + } + + timeout := resolveTimeout(opts.Timeout) + subCtx, cancel := context.WithTimeout(ctx, timeout) + defer cancel() + + args := append([]string{scriptPath}, opts.Args...) + cmd := exec.CommandContext(subCtx, pythonPath, args...) + cmd.Env = buildEnv(opts.CacheDir, opts.ExtraEnv) + + var stdout, stderr bytes.Buffer + cmd.Stdout = &stdout + cmd.Stderr = &stderr + + err = cmd.Run() + res := &RunResult{ + Stdout: stdout.Bytes(), + Stderr: stderr.Bytes(), + ExitCode: 0, + TimedOut: errors.Is(subCtx.Err(), context.DeadlineExceeded), + } + if err == nil { + return res, nil + } + + var exitErr *exec.ExitError + if errors.As(err, &exitErr) { + res.ExitCode = exitErr.ExitCode() + if res.TimedOut { + return res, fmt.Errorf("engine: subprocess exceeded %s timeout", timeout) + } + return res, fmt.Errorf("engine: subprocess exited with code %d", res.ExitCode) + } + return res, fmt.Errorf("engine: subprocess failed to start: %w", err) +} + +// resolvePython returns an absolute path to the interpreter or an error +// naming the install URL. If the caller supplied a path we trust it - tests +// rely on this to inject a stub. Otherwise we look up python3 on PATH. +func resolvePython(override string) (string, error) { + if override != "" { + return override, nil + } + path, err := exec.LookPath(DefaultPythonBinary) + if err == nil { + return path, nil + } + return "", fmt.Errorf( + "engine: %s not found on PATH (need Python %s+, install from %s; current GOOS=%s)", + DefaultPythonBinary, MinPythonVersion, PythonInstallURL, runtime.GOOS, + ) +} + +func resolveTimeout(explicit time.Duration) time.Duration { + if explicit > 0 { + return explicit + } + if raw := os.Getenv(TimeoutEnvOverride); raw != "" { + if d, err := time.ParseDuration(raw); err == nil && d > 0 { + return d + } + } + return DefaultTimeout +} + +// buildEnv stitches PYTHONPATH onto os.Environ + ExtraEnv. Any pre-existing +// PYTHONPATH in the parent environment is dropped before appending the +// cache dir; otherwise the child sees two PYTHONPATH= entries and POSIX +// getenv returns the first one, so the user's value wins and the engine's +// `from lib import ...` fails with ModuleNotFoundError. The engine is +// self-contained and does not need the user's Python module search path. +func buildEnv(cacheDir string, extra []string) []string { + const pyKey = "PYTHONPATH=" + parent := os.Environ() + base := make([]string, 0, len(parent)+1+len(extra)) + for _, kv := range parent { + if strings.HasPrefix(kv, pyKey) { + continue + } + base = append(base, kv) + } + base = append(base, pyKey+cacheDir) + base = append(base, extra...) + return base +} diff --git a/mcp/internal/engine/run_test.go b/mcp/internal/engine/run_test.go new file mode 100644 index 0000000..1e71f59 --- /dev/null +++ b/mcp/internal/engine/run_test.go @@ -0,0 +1,281 @@ +package engine + +import ( + "context" + "errors" + "os" + "path/filepath" + "runtime" + "strings" + "testing" + "time" +) + +// makeStubPython writes a shell script that simulates python3 and returns +// its absolute path. The script honors a small env-driven protocol so each +// test can shape its output: +// +// STUB_STDOUT - text printed to stdout +// STUB_STDERR - text printed to stderr +// STUB_EXIT_CODE - integer exit code (default 0) +// STUB_SLEEP_SECS - sleep before exiting (for timeout tests) +// STUB_ECHO_ENV - name of an env var; the stub prints "=" +// STUB_ECHO_ARG - integer index; the stub prints "ARG=" +// +// The stub ignores its first argument (the script path), matching how a +// real python3 invocation treats `python3 last30days.py ...`. +func makeStubPython(t *testing.T) string { + t.Helper() + if runtime.GOOS == "windows" { + t.Skip("stub-python tests rely on POSIX shell") + } + dir := t.TempDir() + path := filepath.Join(dir, "python3-stub.sh") + script := `#!/usr/bin/env bash +if [ -n "${STUB_SLEEP_SECS:-}" ]; then sleep "$STUB_SLEEP_SECS"; fi +if [ -n "${STUB_STDOUT:-}" ]; then printf "%s" "$STUB_STDOUT"; fi +if [ -n "${STUB_STDERR:-}" ]; then printf "%s" "$STUB_STDERR" >&2; fi +if [ -n "${STUB_ECHO_ENV:-}" ]; then echo "${STUB_ECHO_ENV}=${!STUB_ECHO_ENV:-}"; fi +if [ -n "${STUB_ECHO_ARG:-}" ]; then echo "ARG${STUB_ECHO_ARG}=${!STUB_ECHO_ARG:-}"; fi +exit "${STUB_EXIT_CODE:-0}" +` + if err := os.WriteFile(path, []byte(script), 0o755); err != nil { + t.Fatalf("write stub: %v", err) + } + return path +} + +// stageCache materializes a fake CacheDir with a no-op last30days.py so +// the existence check in Run passes. The stub python3 ignores the script +// contents, so the file just has to exist. +func stageCache(t *testing.T) string { + t.Helper() + dir := t.TempDir() + if err := os.WriteFile(filepath.Join(dir, "last30days.py"), []byte("# stub\n"), 0o644); err != nil { + t.Fatalf("stage cache: %v", err) + } + return dir +} + +func TestRunHappyPath(t *testing.T) { + stub := makeStubPython(t) + cache := stageCache(t) + t.Setenv("STUB_STDOUT", "synthesis output\n") + + res, err := Run(context.Background(), RunOptions{ + PythonPath: stub, + CacheDir: cache, + Args: []string{"my topic", "--emit=compact"}, + }) + if err != nil { + t.Fatalf("Run: %v", err) + } + if string(res.Stdout) != "synthesis output\n" { + t.Fatalf("stdout = %q, want %q", res.Stdout, "synthesis output\n") + } + if res.ExitCode != 0 { + t.Fatalf("ExitCode = %d, want 0", res.ExitCode) + } + if res.TimedOut { + t.Fatal("TimedOut = true, want false") + } +} + +func TestRunForwardsEnv(t *testing.T) { + stub := makeStubPython(t) + cache := stageCache(t) + t.Setenv("OPENAI_API_KEY", "sk-test-value") + t.Setenv("STUB_ECHO_ENV", "OPENAI_API_KEY") + + res, err := Run(context.Background(), RunOptions{ + PythonPath: stub, + CacheDir: cache, + }) + if err != nil { + t.Fatalf("Run: %v", err) + } + if got := strings.TrimSpace(string(res.Stdout)); got != "OPENAI_API_KEY=sk-test-value" { + t.Fatalf("stdout = %q, want OPENAI_API_KEY=sk-test-value", got) + } +} + +func TestRunSetsPythonPath(t *testing.T) { + stub := makeStubPython(t) + cache := stageCache(t) + t.Setenv("STUB_ECHO_ENV", "PYTHONPATH") + + res, err := Run(context.Background(), RunOptions{ + PythonPath: stub, + CacheDir: cache, + }) + if err != nil { + t.Fatalf("Run: %v", err) + } + want := "PYTHONPATH=" + cache + if got := strings.TrimSpace(string(res.Stdout)); got != want { + t.Fatalf("stdout = %q, want %q", got, want) + } +} + +// TestRunDropsPreExistingPythonPath guards the buildEnv dedup: when the +// parent already sets PYTHONPATH (common on dev machines and CI runners +// that touch Python), the child must NOT see two PYTHONPATH= entries. +// POSIX getenv returns the first match, so a duplicate from os.Environ +// would shadow our cache-dir entry and break `from lib import ...`. +func TestRunDropsPreExistingPythonPath(t *testing.T) { + stub := makeStubPython(t) + cache := stageCache(t) + t.Setenv("PYTHONPATH", "/users-stale-pythonpath") + t.Setenv("STUB_ECHO_ENV", "PYTHONPATH") + + res, err := Run(context.Background(), RunOptions{ + PythonPath: stub, + CacheDir: cache, + }) + if err != nil { + t.Fatalf("Run: %v", err) + } + got := strings.TrimSpace(string(res.Stdout)) + want := "PYTHONPATH=" + cache + if got != want { + t.Fatalf("stdout = %q, want %q (stale parent value leaked through)", got, want) + } +} + +func TestBuildEnvDropsAllPreExistingPythonPath(t *testing.T) { + // Direct unit test on buildEnv to catch the case where the parent has + // PYTHONPATH set: the returned slice must contain exactly one + // PYTHONPATH= entry, and it must be ours. + t.Setenv("PYTHONPATH", "/parent/one") + cache := "/cache/dir" + out := buildEnv(cache, []string{"EXTRA=1"}) + + var pythonPaths []string + for _, kv := range out { + if strings.HasPrefix(kv, "PYTHONPATH=") { + pythonPaths = append(pythonPaths, kv) + } + } + if len(pythonPaths) != 1 { + t.Fatalf("got %d PYTHONPATH entries, want 1: %v", len(pythonPaths), pythonPaths) + } + if pythonPaths[0] != "PYTHONPATH="+cache { + t.Fatalf("PYTHONPATH = %q, want %q", pythonPaths[0], "PYTHONPATH="+cache) + } + // Confirm ExtraEnv still rides along. + found := false + for _, kv := range out { + if kv == "EXTRA=1" { + found = true + break + } + } + if !found { + t.Fatal("EXTRA=1 missing from buildEnv output") + } +} + +func TestRunSurfacesExitCode(t *testing.T) { + stub := makeStubPython(t) + cache := stageCache(t) + t.Setenv("STUB_STDERR", "engine boom\n") + t.Setenv("STUB_EXIT_CODE", "2") + + res, err := Run(context.Background(), RunOptions{ + PythonPath: stub, + CacheDir: cache, + }) + if err == nil { + t.Fatal("expected error for non-zero exit") + } + if res == nil { + t.Fatal("res is nil; want populated result alongside error") + } + if res.ExitCode != 2 { + t.Fatalf("ExitCode = %d, want 2", res.ExitCode) + } + if !strings.Contains(string(res.Stderr), "engine boom") { + t.Fatalf("stderr did not surface engine output: %q", res.Stderr) + } +} + +func TestRunTimesOut(t *testing.T) { + stub := makeStubPython(t) + cache := stageCache(t) + t.Setenv("STUB_SLEEP_SECS", "3") + + res, err := Run(context.Background(), RunOptions{ + PythonPath: stub, + CacheDir: cache, + Timeout: 200 * time.Millisecond, + }) + if err == nil { + t.Fatal("expected timeout error") + } + if !res.TimedOut { + t.Fatal("TimedOut = false, want true") + } + if !strings.Contains(err.Error(), "timeout") { + t.Fatalf("error %q lacks 'timeout' marker", err) + } +} + +func TestRunMissingPython(t *testing.T) { + cache := stageCache(t) + // Empty PATH guarantees the lookup fails. PythonPath stays unset so Run + // falls through to exec.LookPath. + t.Setenv("PATH", "") + + _, err := Run(context.Background(), RunOptions{CacheDir: cache}) + if err == nil { + t.Fatal("expected lookup failure with empty PATH") + } + if !strings.Contains(err.Error(), DefaultPythonBinary) { + t.Fatalf("error %q does not mention %s", err, DefaultPythonBinary) + } + if !strings.Contains(err.Error(), PythonInstallURL) { + t.Fatalf("error %q does not include install URL", err) + } +} + +func TestRunMissingScript(t *testing.T) { + stub := makeStubPython(t) + // CacheDir exists but contains no last30days.py. + cache := t.TempDir() + + _, err := Run(context.Background(), RunOptions{ + PythonPath: stub, + CacheDir: cache, + }) + if err == nil { + t.Fatal("expected error when last30days.py missing") + } + if !strings.Contains(err.Error(), "last30days.py") { + t.Fatalf("error %q does not name missing script", err) + } +} + +func TestRunRejectsEmptyCacheDir(t *testing.T) { + stub := makeStubPython(t) + _, err := Run(context.Background(), RunOptions{PythonPath: stub}) + if err == nil { + t.Fatal("expected error for empty CacheDir") + } + if !errors.Is(err, err) || !strings.Contains(err.Error(), "CacheDir") { + t.Fatalf("error %q does not name CacheDir", err) + } +} + +func TestResolveTimeoutHonorsEnv(t *testing.T) { + t.Setenv(TimeoutEnvOverride, "750ms") + if got := resolveTimeout(0); got != 750*time.Millisecond { + t.Fatalf("resolveTimeout = %v, want 750ms", got) + } + t.Setenv(TimeoutEnvOverride, "garbage") + if got := resolveTimeout(0); got != DefaultTimeout { + t.Fatalf("garbage value: got %v, want default %v", got, DefaultTimeout) + } + if got := resolveTimeout(time.Minute); got != time.Minute { + t.Fatalf("explicit value not honored: got %v", got) + } +} diff --git a/mcp/internal/engine/vendored/.gitkeep b/mcp/internal/engine/vendored/.gitkeep new file mode 100644 index 0000000..5e52b31 --- /dev/null +++ b/mcp/internal/engine/vendored/.gitkeep @@ -0,0 +1,2 @@ +Populated at build time by scripts/sync-engine.sh. +Source of truth: skills/last30days/scripts/. diff --git a/mcp/internal/manifest/manifest_test.go b/mcp/internal/manifest/manifest_test.go new file mode 100644 index 0000000..26a2c98 --- /dev/null +++ b/mcp/internal/manifest/manifest_test.go @@ -0,0 +1,189 @@ +// Package manifest holds tests for mcp/manifest.json. It contains no +// production code - the manifest itself is the artifact, and these tests +// guard structural invariants the bundling pipeline depends on. +package manifest + +import ( + "encoding/json" + "os" + "path/filepath" + "runtime" + "strings" + "testing" +) + +// envBinding is a minimal subset of the MCPB v0.3 manifest just covering +// the fields these tests assert on. We deliberately do not depend on the +// printing-press internal/pipeline types (that's an internal/ package and +// not importable across modules) - the structural invariants below are +// what actually matter for Claude Desktop install correctness. +type manifestShape struct { + ManifestVersion string `json:"manifest_version"` + Name string `json:"name"` + Version string `json:"version"` + Server struct { + Type string `json:"type"` + EntryPoint string `json:"entry_point"` + MCPConfig struct { + Command string `json:"command"` + Env map[string]string `json:"env"` + } `json:"mcp_config"` + } `json:"server"` + UserConfig map[string]struct { + Type string `json:"type"` + Title string `json:"title"` + Description string `json:"description"` + Sensitive bool `json:"sensitive"` + Required bool `json:"required"` + } `json:"user_config"` + Compatibility struct { + ClaudeDesktop string `json:"claude_desktop"` + Platforms []string `json:"platforms"` + } `json:"compatibility"` +} + +// loadManifest reads mcp/manifest.json relative to this test file so the +// test passes regardless of where `go test` is invoked from. +func loadManifest(t *testing.T) manifestShape { + t.Helper() + _, thisFile, _, ok := runtime.Caller(0) + if !ok { + t.Fatal("runtime.Caller failed") + } + // manifest_test.go is at mcp/internal/manifest/; manifest.json at mcp/. + manifestPath := filepath.Join(filepath.Dir(thisFile), "..", "..", "manifest.json") + data, err := os.ReadFile(manifestPath) + if err != nil { + t.Fatalf("read manifest: %v", err) + } + var m manifestShape + if err := json.Unmarshal(data, &m); err != nil { + t.Fatalf("parse manifest: %v", err) + } + return m +} + +func TestManifestRequiredFields(t *testing.T) { + m := loadManifest(t) + if m.ManifestVersion != "0.3" { + t.Errorf("manifest_version = %q, want 0.3", m.ManifestVersion) + } + if m.Name != "last30days-pp-mcp" { + t.Errorf("name = %q, want last30days-pp-mcp", m.Name) + } + if m.Version == "" { + t.Error("version is empty") + } + if m.Server.Type != "binary" { + t.Errorf("server.type = %q, want binary", m.Server.Type) + } + if m.Server.EntryPoint != "bin/last30days-pp-mcp" { + t.Errorf("server.entry_point = %q, want bin/last30days-pp-mcp", m.Server.EntryPoint) + } + if m.Compatibility.ClaudeDesktop == "" { + t.Error("compatibility.claude_desktop is empty") + } +} + +// TestEnvAndUserConfigCrossReference is the key invariant: every +// ${user_config.} substitution in server.mcp_config.env must point +// at a real user_config entry, and every declared user_config must be +// wired to an env var. A typo on either side silently disables a credential +// at install time without the binary or Claude Desktop noticing. +func TestEnvAndUserConfigCrossReference(t *testing.T) { + m := loadManifest(t) + + if len(m.Server.MCPConfig.Env) == 0 { + t.Fatal("server.mcp_config.env is empty; expected user_config substitutions") + } + if len(m.UserConfig) == 0 { + t.Fatal("user_config is empty; expected per-key declarations") + } + + for envName, value := range m.Server.MCPConfig.Env { + key, ok := parseUserConfigRef(value) + if !ok { + t.Errorf("env[%s] = %q is not a ${user_config.} reference", envName, value) + continue + } + if _, declared := m.UserConfig[key]; !declared { + t.Errorf("env[%s] references user_config[%q], which is not declared", envName, key) + } + // The user_config key must be the lowercased env var so Claude + // Desktop's substitution rule matches PP's emitted shape. + if got := strings.ToLower(envName); key != got { + t.Errorf("env[%s] -> user_config[%q]; convention requires user_config[%q]", envName, key, got) + } + } + + envValues := make(map[string]bool, len(m.Server.MCPConfig.Env)) + for _, value := range m.Server.MCPConfig.Env { + if key, ok := parseUserConfigRef(value); ok { + envValues[key] = true + } + } + for key := range m.UserConfig { + if !envValues[key] { + t.Errorf("user_config[%q] is declared but never substituted into env", key) + } + } +} + +func TestUserConfigShape(t *testing.T) { + m := loadManifest(t) + for key, slot := range m.UserConfig { + if slot.Type != "string" { + t.Errorf("user_config[%q].type = %q, want string", key, slot.Type) + } + if slot.Title == "" { + t.Errorf("user_config[%q].title is empty", key) + } + if slot.Description == "" { + t.Errorf("user_config[%q].description is empty", key) + } + if !slot.Sensitive { + // API keys must be flagged sensitive so Claude Desktop masks + // the input and prefers OS-keychain storage. + t.Errorf("user_config[%q].sensitive = false; want true for API credentials", key) + } + if slot.Required { + // The engine degrades to web-only mode without keys, so no + // key is install-blocking. + t.Errorf("user_config[%q].required = true; engine degrades without keys, so all keys are optional", key) + } + } +} + +func TestPlatformsMatchShippingMatrix(t *testing.T) { + // compatibility.platforms must list exactly what the release CI + // actually packages. Listing a platform we don't ship would let + // Claude Desktop start an install that has no matching binary inside + // the bundle, producing a silent failure. The CI matrix in + // .github/workflows/release.yml currently covers darwin (arm64 + + // amd64) and linux/amd64; Windows is deferred. + m := loadManifest(t) + required := map[string]bool{"darwin": false, "linux": false} + forbidden := map[string]bool{"win32": true} + for _, p := range m.Compatibility.Platforms { + if _, ok := required[p]; ok { + required[p] = true + } + if forbidden[p] { + t.Errorf("compatibility.platforms contains %q but the release matrix does not ship that platform; add it to the matrix or remove from the manifest", p) + } + } + for p, found := range required { + if !found { + t.Errorf("compatibility.platforms missing %q", p) + } + } +} + +func parseUserConfigRef(value string) (string, bool) { + const prefix = "${user_config." + const suffix = "}" + if !strings.HasPrefix(value, prefix) || !strings.HasSuffix(value, suffix) { + return "", false + } + return value[len(prefix) : len(value)-len(suffix)], true +} diff --git a/mcp/internal/tools/preflight.go b/mcp/internal/tools/preflight.go new file mode 100644 index 0000000..123dc94 --- /dev/null +++ b/mcp/internal/tools/preflight.go @@ -0,0 +1,85 @@ +package tools + +import ( + "context" + "errors" + "fmt" + + mcplib "github.com/mark3labs/mcp-go/mcp" + "github.com/mark3labs/mcp-go/server" + + "github.com/mvanhorn/last30days-skill/mcp/internal/engine" +) + +func registerPreflightTool(s *server.MCPServer, cfg Config) { + s.AddTool( + mcplib.NewTool("preflight", + mcplib.WithDescription( + "Safely summarize what last30days would read, write, execute, and contact "+ + "without running research, saving files, or reading browser cookies.", + ), + mcplib.WithString("format", mcplib.Description("Output shape: 'text' (default) for a concise summary or 'json' for structured details.")), + mcplib.WithReadOnlyHintAnnotation(true), + mcplib.WithDestructiveHintAnnotation(false), + mcplib.WithOpenWorldHintAnnotation(false), + ), + makePreflightHandler(cfg), + ) +} + +func makePreflightHandler(cfg Config) server.ToolHandlerFunc { + return func(ctx context.Context, req mcplib.CallToolRequest) (*mcplib.CallToolResult, error) { + format, err := preflightFormatArgument(req.GetArguments()) + if err != nil { + return mcplib.NewToolResultError(err.Error()), nil + } + + src, err := engine.EngineFS() + if err != nil { + return mcplib.NewToolResultError(fmt.Sprintf("engine source unavailable: %v", err)), nil + } + cacheDir, err := engine.EnsureUserCache(src, cfg.Version) + if err != nil { + return mcplib.NewToolResultError(fmt.Sprintf( + "engine extract failed: %v\nhint: set %s to a writable directory if the default cache location is locked down", + err, engine.CacheEnvOverride, + )), nil + } + + res, runErr := engine.Run(ctx, engine.RunOptions{ + CacheDir: cacheDir, + Args: preflightRunArgs(format), + }) + if runErr != nil { + return mcplib.NewToolResultError(formatRunError(runErr, res)), nil + } + return mcplib.NewToolResultText(string(res.Stdout)), nil + } +} + +func preflightRunArgs(format string) []string { + runArgs := []string{"--preflight", "--preflight-report-on-save-dir", mcpSaveDir()} + if format == "json" { + runArgs = append(runArgs, "--emit=json") + } + return runArgs +} + +func preflightFormatArgument(args map[string]any) (string, error) { + raw, ok := args["format"] + if !ok { + return "text", nil + } + value, ok := raw.(string) + if !ok { + return "", errors.New("format must be a string") + } + switch value { + case "", "text": + return "text", nil + case "json": + return "json", nil + default: + return "", fmt.Errorf("format must be 'text' or 'json', got %q", value) + } +} diff --git a/mcp/internal/tools/preflight_test.go b/mcp/internal/tools/preflight_test.go new file mode 100644 index 0000000..31e0f33 --- /dev/null +++ b/mcp/internal/tools/preflight_test.go @@ -0,0 +1,60 @@ +package tools + +import ( + "strings" + "testing" +) + +func TestPreflightRunArgsDefaultTextIsSafe(t *testing.T) { + t.Setenv("LAST30DAYS_MEMORY_DIR", "") + args := preflightRunArgs("text") + want := []string{ + "--preflight", + "--preflight-report-on-save-dir", + "~/Documents/Last30Days", + } + if strings.Join(args, "\x00") != strings.Join(want, "\x00") { + t.Fatalf("args = %#v, want %#v", args, want) + } +} + +func TestPreflightRunArgsJSONIsSafeAndStructured(t *testing.T) { + t.Setenv("LAST30DAYS_MEMORY_DIR", "/tmp/last30days-reports") + args := preflightRunArgs("json") + want := []string{ + "--preflight", + "--preflight-report-on-save-dir", + "/tmp/last30days-reports", + "--emit=json", + } + if strings.Join(args, "\x00") != strings.Join(want, "\x00") { + t.Fatalf("args = %#v, want %#v", args, want) + } +} + +func TestPreflightFormatArgumentDefaultsAndValidates(t *testing.T) { + cases := []struct { + name string + args map[string]any + want string + wantErr bool + }{ + {"missing defaults to text", map[string]any{}, "text", false}, + {"empty defaults to text", map[string]any{"format": ""}, "text", false}, + {"text passes", map[string]any{"format": "text"}, "text", false}, + {"json passes", map[string]any{"format": "json"}, "json", false}, + {"invalid rejected", map[string]any{"format": "xml"}, "", true}, + {"non-string rejected", map[string]any{"format": true}, "", true}, + } + for _, tc := range cases { + t.Run(tc.name, func(t *testing.T) { + got, err := preflightFormatArgument(tc.args) + if (err != nil) != tc.wantErr { + t.Fatalf("err = %v, wantErr = %v", err, tc.wantErr) + } + if got != tc.want { + t.Fatalf("got %q, want %q", got, tc.want) + } + }) + } +} diff --git a/mcp/internal/tools/research.go b/mcp/internal/tools/research.go new file mode 100644 index 0000000..d9e8124 --- /dev/null +++ b/mcp/internal/tools/research.go @@ -0,0 +1,158 @@ +// Package tools owns the MCP tool surface for last30days. +package tools + +import ( + "context" + "errors" + "fmt" + "os" + "strings" + + mcplib "github.com/mark3labs/mcp-go/mcp" + "github.com/mark3labs/mcp-go/server" + + "github.com/mvanhorn/last30days-skill/mcp/internal/engine" +) + +// Config carries the version string used to namespace the per-user cache. +// main passes its ldflags-stamped Version here. +type Config struct { + Version string +} + +// Register adds every tool this server exposes to s. The caller supplies a +// Config so test harnesses can pin a version without touching globals. +func Register(s *server.MCPServer, cfg Config) { + registerPreflightTool(s, cfg) + s.AddTool( + mcplib.NewTool("research", + mcplib.WithDescription( + "Research what people are actually saying about any topic in the last 30 days. "+ + "Aggregates Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, "+ + "scored by upvotes, likes, transcripts, and real-money prediction-market odds. "+ + "Returns the engine's compact output for the model to synthesize.", + ), + mcplib.WithString("topic", mcplib.Required(), mcplib.Description("The subject to research (a person, company, product, event, or general topic).")), + mcplib.WithString("emit", mcplib.Description("Output shape: 'compact' (default) for inline synthesis or 'html' to save a shareable brief alongside the response.")), + mcplib.WithBoolean("save", mcplib.Description("Persist the synthesis as a markdown report under ~/Documents/Last30Days/ (or LAST30DAYS_MEMORY_DIR if set).")), + mcplib.WithReadOnlyHintAnnotation(false), + mcplib.WithDestructiveHintAnnotation(false), + mcplib.WithOpenWorldHintAnnotation(true), + ), + makeResearchHandler(cfg), + ) +} + +func makeResearchHandler(cfg Config) server.ToolHandlerFunc { + return func(ctx context.Context, req mcplib.CallToolRequest) (*mcplib.CallToolResult, error) { + args := req.GetArguments() + topic, err := requireString(args, "topic") + if err != nil { + return mcplib.NewToolResultError(err.Error()), nil + } + + emit, err := emitArgument(args) + if err != nil { + return mcplib.NewToolResultError(err.Error()), nil + } + + save, err := boolArgument(args, "save") + if err != nil { + return mcplib.NewToolResultError(err.Error()), nil + } + + src, err := engine.EngineFS() + if err != nil { + return mcplib.NewToolResultError(fmt.Sprintf("engine source unavailable: %v", err)), nil + } + cacheDir, err := engine.EnsureUserCache(src, cfg.Version) + if err != nil { + return mcplib.NewToolResultError(fmt.Sprintf( + "engine extract failed: %v\nhint: set %s to a writable directory if the default cache location is locked down", + err, engine.CacheEnvOverride, + )), nil + } + + runArgs := researchRunArgs(topic, emit, save) + + res, runErr := engine.Run(ctx, engine.RunOptions{ + CacheDir: cacheDir, + Args: runArgs, + }) + if runErr != nil { + return mcplib.NewToolResultError(formatRunError(runErr, res)), nil + } + return mcplib.NewToolResultText(string(res.Stdout)), nil + } +} + +func researchRunArgs(topic, emit string, save bool) []string { + runArgs := []string{topic, "--emit=" + emit, "--no-browser-cookies"} + if save { + runArgs = append(runArgs, "--save-dir", mcpSaveDir()) + } + return runArgs +} + +func mcpSaveDir() string { + saveDir := os.Getenv("LAST30DAYS_MEMORY_DIR") + if saveDir == "" { + return "~/Documents/Last30Days" + } + return saveDir +} + +func requireString(args map[string]any, name string) (string, error) { + raw, ok := args[name] + if !ok { + return "", fmt.Errorf("%s is required", name) + } + value, ok := raw.(string) + if !ok || strings.TrimSpace(value) == "" { + return "", fmt.Errorf("%s must be a non-empty string", name) + } + return value, nil +} + +func emitArgument(args map[string]any) (string, error) { + raw, ok := args["emit"] + if !ok { + return "compact", nil + } + value, ok := raw.(string) + if !ok { + return "", errors.New("emit must be a string") + } + switch value { + case "": + return "compact", nil + case "compact", "html": + return value, nil + default: + return "", fmt.Errorf("emit must be 'compact' or 'html', got %q", value) + } +} + +func boolArgument(args map[string]any, name string) (bool, error) { + raw, ok := args[name] + if !ok { + return false, nil + } + value, ok := raw.(bool) + if !ok { + return false, fmt.Errorf("%s must be a boolean", name) + } + return value, nil +} + +// formatRunError flattens engine.Run's distinct error shapes into a single +// user-facing message that includes the relevant stderr context. +func formatRunError(runErr error, res *engine.RunResult) string { + var msg strings.Builder + msg.WriteString(runErr.Error()) + if res != nil && len(res.Stderr) > 0 { + msg.WriteString("\nengine stderr:\n") + msg.Write(res.Stderr) + } + return msg.String() +} diff --git a/mcp/internal/tools/research_test.go b/mcp/internal/tools/research_test.go new file mode 100644 index 0000000..2a257b8 --- /dev/null +++ b/mcp/internal/tools/research_test.go @@ -0,0 +1,175 @@ +package tools + +import ( + "context" + "errors" + "strings" + "testing" + + mcplib "github.com/mark3labs/mcp-go/mcp" + + "github.com/mvanhorn/last30days-skill/mcp/internal/engine" +) + +func newCallToolRequest(args map[string]any) mcplib.CallToolRequest { + var req mcplib.CallToolRequest + req.Params.Arguments = args + return req +} + +// resultText pulls text content out of a tool result so tests can assert on +// the body Claude will see. Returns empty string when the result is nil or +// has no text content. +func resultText(res *mcplib.CallToolResult) string { + if res == nil { + return "" + } + var out strings.Builder + for _, item := range res.Content { + if tc, ok := item.(mcplib.TextContent); ok { + out.WriteString(tc.Text) + } + } + return out.String() +} + +func TestRequireStringRejectsMissingAndBlank(t *testing.T) { + if _, err := requireString(map[string]any{}, "topic"); err == nil { + t.Fatal("expected error for missing topic") + } + if _, err := requireString(map[string]any{"topic": ""}, "topic"); err == nil { + t.Fatal("expected error for empty topic") + } + if _, err := requireString(map[string]any{"topic": " "}, "topic"); err == nil { + t.Fatal("expected error for whitespace-only topic") + } + if _, err := requireString(map[string]any{"topic": 42}, "topic"); err == nil { + t.Fatal("expected error for non-string topic") + } + v, err := requireString(map[string]any{"topic": "OpenAI"}, "topic") + if err != nil || v != "OpenAI" { + t.Fatalf("requireString ok = %q, %v", v, err) + } +} + +func TestEmitArgumentDefaultsAndValidates(t *testing.T) { + cases := []struct { + name string + args map[string]any + want string + wantErr bool + }{ + {"missing defaults to compact", map[string]any{}, "compact", false}, + {"empty string defaults to compact", map[string]any{"emit": ""}, "compact", false}, + {"compact passes through", map[string]any{"emit": "compact"}, "compact", false}, + {"html passes through", map[string]any{"emit": "html"}, "html", false}, + {"invalid value rejected", map[string]any{"emit": "json"}, "", true}, + {"non-string rejected", map[string]any{"emit": 7}, "", true}, + } + for _, tc := range cases { + t.Run(tc.name, func(t *testing.T) { + got, err := emitArgument(tc.args) + if (err != nil) != tc.wantErr { + t.Fatalf("err = %v, wantErr = %v", err, tc.wantErr) + } + if got != tc.want { + t.Fatalf("got %q, want %q", got, tc.want) + } + }) + } +} + +func TestBoolArgument(t *testing.T) { + v, err := boolArgument(map[string]any{}, "save") + if err != nil || v { + t.Fatalf("missing: %v, %v", v, err) + } + v, err = boolArgument(map[string]any{"save": true}, "save") + if err != nil || !v { + t.Fatalf("true: %v, %v", v, err) + } + v, err = boolArgument(map[string]any{"save": false}, "save") + if err != nil || v { + t.Fatalf("false: %v, %v", v, err) + } + if _, err := boolArgument(map[string]any{"save": "true"}, "save"); err == nil { + t.Fatal("expected error for string value") + } +} + +func TestResearchRunArgsIncludesNoBrowserCookies(t *testing.T) { + args := researchRunArgs("OpenAI", "compact", false) + want := []string{"OpenAI", "--emit=compact", "--no-browser-cookies"} + if strings.Join(args, "\x00") != strings.Join(want, "\x00") { + t.Fatalf("args = %#v, want %#v", args, want) + } +} + +func TestResearchRunArgsSaveUsesSupportedSaveDir(t *testing.T) { + t.Setenv("LAST30DAYS_MEMORY_DIR", "") + args := researchRunArgs("OpenAI", "html", true) + got := strings.Join(args, "\x00") + if strings.Contains(got, "--save\x00") || strings.HasSuffix(got, "--save") { + t.Fatalf("args still include unsupported --save: %#v", args) + } + want := []string{"OpenAI", "--emit=html", "--no-browser-cookies", "--save-dir", "~/Documents/Last30Days"} + if got != strings.Join(want, "\x00") { + t.Fatalf("args = %#v, want %#v", args, want) + } +} + +func TestResearchRunArgsSaveUsesMemoryDirEnvOverride(t *testing.T) { + t.Setenv("LAST30DAYS_MEMORY_DIR", "/tmp/last30days-reports") + args := researchRunArgs("OpenAI", "html", true) + want := []string{"OpenAI", "--emit=html", "--no-browser-cookies", "--save-dir", "/tmp/last30days-reports"} + if strings.Join(args, "\x00") != strings.Join(want, "\x00") { + t.Fatalf("args = %#v, want %#v", args, want) + } +} + +func TestResearchHandlerValidationErrorsAreToolErrors(t *testing.T) { + // Validation failures are returned as MCP tool errors (not Go errors) + // so Claude sees a structured failure with a readable message rather + // than a transport-level fault. + handler := makeResearchHandler(Config{Version: "test"}) + + cases := []struct { + name string + args map[string]any + wantSub string + }{ + {"missing topic", map[string]any{}, "topic is required"}, + {"blank topic", map[string]any{"topic": " "}, "non-empty string"}, + {"invalid emit", map[string]any{"topic": "OpenAI", "emit": "json"}, "must be 'compact' or 'html'"}, + {"non-bool save", map[string]any{"topic": "OpenAI", "save": "yes"}, "save must be a boolean"}, + } + for _, tc := range cases { + t.Run(tc.name, func(t *testing.T) { + res, err := handler(context.Background(), newCallToolRequest(tc.args)) + if err != nil { + t.Fatalf("handler should not return Go error for validation; got %v", err) + } + if res == nil || !res.IsError { + t.Fatalf("expected IsError result, got %+v", res) + } + if !strings.Contains(resultText(res), tc.wantSub) { + t.Fatalf("result text %q missing substring %q", resultText(res), tc.wantSub) + } + }) + } +} + +func TestFormatRunErrorIncludesStderr(t *testing.T) { + res := &engine.RunResult{Stderr: []byte("engine exploded\n")} + msg := formatRunError(errors.New("boom"), res) + if !strings.Contains(msg, "boom") || !strings.Contains(msg, "engine exploded") { + t.Fatalf("formatRunError missed pieces: %q", msg) + } +} + +func TestFormatRunErrorHandlesNilResult(t *testing.T) { + msg := formatRunError(errors.New("boom"), nil) + if msg != "boom" { + t.Fatalf("nil result: got %q, want %q", msg, "boom") + } +} diff --git a/mcp/manifest.json b/mcp/manifest.json new file mode 100644 index 0000000..46d7305 --- /dev/null +++ b/mcp/manifest.json @@ -0,0 +1,151 @@ +{ + "manifest_version": "0.3", + "name": "last30days-pp-mcp", + "display_name": "Last30Days", + "version": "3.6.0", + "description": "Research any topic across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web - last 30 days, scored by upvotes, likes, and real-money prediction-market odds.", + "author": { + "name": "Matt Van Horn", + "url": "https://github.com/mvanhorn/last30days-skill" + }, + "repository": { + "type": "git", + "url": "https://github.com/mvanhorn/last30days-skill" + }, + "license": "MIT", + "keywords": [ + "research", + "reddit", + "twitter", + "x", + "youtube", + "hacker-news", + "polymarket", + "github", + "search", + "synthesis" + ], + "server": { + "type": "binary", + "entry_point": "bin/last30days-pp-mcp", + "mcp_config": { + "command": "${__dirname}/bin/last30days-pp-mcp", + "args": [], + "env": { + "OPENAI_API_KEY": "${user_config.openai_api_key}", + "XAI_API_KEY": "${user_config.xai_api_key}", + "BRAVE_API_KEY": "${user_config.brave_api_key}", + "EXA_API_KEY": "${user_config.exa_api_key}", + "SERPER_API_KEY": "${user_config.serper_api_key}", + "GOOGLE_API_KEY": "${user_config.google_api_key}", + "GEMINI_API_KEY": "${user_config.gemini_api_key}", + "GOOGLE_GENAI_API_KEY": "${user_config.google_genai_api_key}", + "APIFY_API_TOKEN": "${user_config.apify_api_token}", + "BSKY_APP_PASSWORD": "${user_config.bsky_app_password}", + "PARALLEL_API_KEY": "${user_config.parallel_api_key}", + "SCRAPECREATORS_API_KEY": "${user_config.scrapecreators_api_key}", + "OPENROUTER_API_KEY": "${user_config.openrouter_api_key}" + } + } + }, + "user_config": { + "openai_api_key": { + "type": "string", + "title": "OPENAI_API_KEY", + "description": "OpenAI API key. Powers Reddit research via OpenAI's web_search tool. Get one at https://platform.openai.com/api-keys.", + "sensitive": true, + "required": false + }, + "xai_api_key": { + "type": "string", + "title": "XAI_API_KEY", + "description": "xAI API key. Powers X / Twitter research via xAI's x_search tool. Get one at https://console.x.ai/.", + "sensitive": true, + "required": false + }, + "brave_api_key": { + "type": "string", + "title": "BRAVE_API_KEY", + "description": "Brave Search API key. Used for grounded web search results. Get one at https://brave.com/search/api/.", + "sensitive": true, + "required": false + }, + "exa_api_key": { + "type": "string", + "title": "EXA_API_KEY", + "description": "Exa search API key. Alternative web search backend with semantic ranking. Get one at https://exa.ai/.", + "sensitive": true, + "required": false + }, + "serper_api_key": { + "type": "string", + "title": "SERPER_API_KEY", + "description": "Serper API key. Google search via API. Get one at https://serper.dev/.", + "sensitive": true, + "required": false + }, + "google_api_key": { + "type": "string", + "title": "GOOGLE_API_KEY", + "description": "Google API key for YouTube transcript fetching and other Google services. Get one at https://console.cloud.google.com/apis/credentials.", + "sensitive": true, + "required": false + }, + "gemini_api_key": { + "type": "string", + "title": "GEMINI_API_KEY", + "description": "Gemini API key. Used for synthesis fallback when other LLM providers are unavailable. Get one at https://aistudio.google.com/apikey.", + "sensitive": true, + "required": false + }, + "google_genai_api_key": { + "type": "string", + "title": "GOOGLE_GENAI_API_KEY", + "description": "Alternative Google generative-AI API key. Same source as GEMINI_API_KEY; set whichever name your tooling expects.", + "sensitive": true, + "required": false + }, + "apify_api_token": { + "type": "string", + "title": "APIFY_API_TOKEN", + "description": "Apify API token. Powers TikTok and Instagram Reels search via Apify actors. Get one at https://console.apify.com/account/integrations.", + "sensitive": true, + "required": false + }, + "bsky_app_password": { + "type": "string", + "title": "BSKY_APP_PASSWORD", + "description": "Bluesky app password (not your main password). Powers AT Protocol post search. Create at https://bsky.app/settings/app-passwords.", + "sensitive": true, + "required": false + }, + "parallel_api_key": { + "type": "string", + "title": "PARALLEL_API_KEY", + "description": "Parallel AI key. Powers parallel research runs across sources. Get one at https://parallel.ai/.", + "sensitive": true, + "required": false + }, + "scrapecreators_api_key": { + "type": "string", + "title": "SCRAPECREATORS_API_KEY", + "description": "ScrapeCreators API key. Powers creator-focused social search across TikTok, Instagram, and YouTube. Get one at https://scrapecreators.com/.", + "sensitive": true, + "required": false + }, + "openrouter_api_key": { + "type": "string", + "title": "OPENROUTER_API_KEY", + "description": "OpenRouter API key. Alternative LLM provider gateway for synthesis. Get one at https://openrouter.ai/keys.", + "sensitive": true, + "required": false + } + }, + "compatibility": { + "claude_desktop": ">=1.0.0", + "platforms": [ + "darwin", + "linux" + ] + } +} diff --git a/mcp/scripts/sync-engine.sh b/mcp/scripts/sync-engine.sh new file mode 100755 index 0000000..0f04012 --- /dev/null +++ b/mcp/scripts/sync-engine.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +# Mirrors skills/last30days/scripts/{last30days.py,lib/} into mcp/vendored/ +# so the Go binary's embed.FS captures the engine at build time. +# +# Source of truth: skills/last30days/scripts/. Never edit mcp/vendored/ directly. +# Run before `go build` locally and in CI before `printing-press bundle`. + +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +MCP_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)" +REPO_ROOT="$(cd "${MCP_DIR}/.." && pwd)" +ENGINE_SRC="${REPO_ROOT}/skills/last30days/scripts" +# Embed path must live inside the consuming package (Go //go:embed cannot +# reach outside its own directory tree), so vendored/ sits under engine/. +VENDORED="${MCP_DIR}/internal/engine/vendored" + +if [ ! -f "${ENGINE_SRC}/last30days.py" ]; then + echo "sync-engine: ${ENGINE_SRC}/last30days.py not found" >&2 + exit 1 +fi + +mkdir -p "${VENDORED}" +# Clear stale content while keeping the .gitkeep that anchors the embed path. +find "${VENDORED}" -mindepth 1 -not -name ".gitkeep" -delete + +# Copy the entry script and the lib/ tree (modules + lib/vendor/). +cp "${ENGINE_SRC}/last30days.py" "${VENDORED}/last30days.py" +cp -R "${ENGINE_SRC}/lib" "${VENDORED}/lib" + +# Strip caches so the embed.FS stays deterministic. +find "${VENDORED}" -type d -name "__pycache__" -prune -exec rm -rf {} + +find "${VENDORED}" -type f -name "*.pyc" -delete + +echo "sync-engine: vendored engine at ${VENDORED}" diff --git a/media/pr-assets/gogcli-589-zoom-demo.gif b/media/pr-assets/gogcli-589-zoom-demo.gif new file mode 100644 index 0000000000000000000000000000000000000000..cc6ad3176a6dfd21e218ae04c99ae690b767d0c2 GIT binary patch literal 2522563 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
  • @E^l}1`9&mAtOSOKb~aq5;jcZMq$8Y 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
    0=l_&situdxyN)Geg?@U$ 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
    +Ov**f*4%fkNBTH0@^pkoJ-Fe8+02NGn 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

    @F9A(5DJ`N>2Sxl{Zq_j8`bsW+UYNQfxRSOk( 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�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 z z-DcWb?3$6V+huBZr@urIr8mJ}*VXS*rb(XpkA%P{w|#p~nPgE-_U(;y@$c=MrNw3J z3x?nJAABmYkJh^{^o(=B$j_6f3%~E9j!gQEO8OfFnj}Vu?FgJO^(WCY68TY1!bCge==I>YrgMXjN|MsstU^Bc&kfB@BxUwq4_V8c zyZ#EEoIPO``t{V@@QPFNf!XV!Kl|oJK9?jPT(%1P{dDfe`b6@fAJ@aSe$L(G!)bK5 zH5C->Z6Td$g%ZP5gxUP4NGYvY)jAv#Fh3?WNh>uO4j0avzomdkDR;7t5UrgbS9eaS z^c#+l?4O^|FHJcdZ5=5)H$Q1MnNpK694Ws(f7=d`$|$jpQj%Jja&b;Qc9K6FrDnEp zXIE+Ji8kwKt$>BQ0h6hxdWWO+vKH=zA=2t5tYZvo7w*S8r=6Z1jxp_Dc#vG0c6Ql1 z)^cv)Vb)|?!;j%u+x3M<`G|BT+$PRJ>KUiZIlWn8B+l9F+2bRn>8+|Z@ooXnrfUTQ zXp@n6udHWJ8W9=iooo_(YM;$?IA?VEjU@Q@KbyT=nsG7OX5ZeqXHWYlGrBYWA40R| z^S7Ndubdo7j4^w@@TfHNTAR)Ogn;MI<|Z@ydPnvrWj%lX3XwH1VUv_v`~1a&B0fwgzIxg0Lv zdY}DOsifwJhHqE!o&TjU*Ex;qw9{|ETi>~Q{&9=z@&8I*J>w=O{zrlTKZUu>v)?bb z&i@}&MHLk0ZVdnW_U_4re+zSe)_HI42?}#J{{C`a`}pcn7+L^%n5+$>!z8mC@)2t1 znORUhL1Au2QBXw{*PEjX3UktDi)Az4DJDrB5)|gTQ(Ogbu2Yf`0yx(|eTAL?Wg4aZ zPypvDAB`g*&40dA-fOZYK$&K|H}}?X_9hG9Tv|~}E*9l9Hd#1*kwD<{XvI>YhiQcv z)NaazorDmx5TR*Kf=GahG(kUQfmebN7dMD@&f0o2ZWoFf2kli*Ct{BmH)qi`3@x~H zd(@^8+inHF#BR}AelOx&E}1^&P%HT%J`-+D1RWIF>G$nwm8iFD;E#E`2#8Po!D*&u z&+kXNjc-4kgSE&zlG{P}6H)M*Y*dxUi4R>mrGU_G9k*+iob&dTVAU}lm<)*nvs&dI zHN97Qp$V$aBXfW|qQ&GPt)r<7oZ-Qlnt|_`E@TfVh3T+k{YE++53k^WPDtaR&!ca8 zG&x4vo{VVRldW%W?M)ItOarX1N_d#>cn|@F(gh%6Dn@GdC{b57ft_!|6S2_pUE(>y z@w@3l(AtYeu^MIEug>^Bd0M`otp)&Ar6&CUe* z?E8+T8lVI6sOyXosB!kC!!y7BkUfv=_K9B$aTFl=2uk>)P)Fl(z72>mgw^12rmKvr ziyAci<(Z1P^o!3KxfvOcWqRbqG#l?b=PaGw2RCy`Q=Zk1B^-SD>%EU>gUN@BBEKv+ zmu|1MeAu=}-U3JOHIZeFT3cac|lo@$^QgxDLW|`=p$q3!ZE3>La3}`Ui)x z^7e)5;Jd%d2i4y-0uo~*@9K#M#mx(F$E8NT{JoW>a=r=V?>IkN!PZx93PKT($F9~+ zQ7hsfzZ5$&J>F@Ya;Q-dlrsYvFPfMU1|ATEQXKw0!7;1i!s0V8GUT7?M~C4uqwltw zz^dv;`DRfC7<1aF!s}$>@V;Pz^4RFzJ*^RVk}9V_jyu>Qju(M`xK)lOk$e!r;myJLDcf7AkIMvZ+L*X#cqI`T zc%@(6J~PXUij&+BY5%NjvSr?>e`f7sko@Jd^+j~f>ItwR+fFN;cT$Vxm(Ij6p*); z6%IqH#~ccY`8HFp5rszM{suiBn=V+{>-cQ~knHeAAxg)JfEJRx%%MBB2>%Y~^YJIj zM<$A;o!WcHt*;j&lNet8r7WJmlPvs@h6sa?`M(?iAa#Eoeh9uu>>PJoD@~hQElrc4<% zOynhx%1XCf6gkYyH|T--$})MlehV@#1DeUqyI)#DW)eIE4bjh~ZR zd?%^RD{&%@OBsFU+-p9iLqSy@H0it1nx72pbGBuyn|4l8^zXyRJRgIn@eBK&k zVIeD(`e%{E701wD$I&?uqoGY?xO5Rxf>i(*5^xDo4uE`16zX|mthHVEBR-j}aJ~lx zFtzU?6(RMSCS7J$^**|B;teM$0Q9^L?Ahz1CzYAkox>J-Q9JEbVs){Ops;SE!Fd#GQLT7lfP2_K)k~I0jeZXz584Da? zPAc5p$H1XfZX=v|LR*T3Hc+DECbig4in8ib-8FQWd)w5FfUR)<1HjGMC(;8f(W_q| zFn%^!B4V^+zvCuU&HVhijH4pmgWDFZej0eaPPhh6Data<$vEfPvRwz8MMR0Cs1v)t zx8#aI^5~9gwu(qf)NA;-@|0z=JI)nP22!P+6%jO!9ivdZgd%#@@G;V{PDw0m<2K^r ze%qJ!AOUfNzK}0kXxB;qR6;3HA0Sppl`m(EYa|uHl&GbSzn+R*M56WS#wY?APDDMX zA_06V?W@Q!DTtu8W5PI)ybecEyx~nd%W0WaTyJI70zr&Y&UBOa%T+B$AyvVbDmm#Y zka#XShT{orhy;`9$H^E5B}A2$|0^rb(a}Mg2Oj64x$7`#uBs3Ty4a6m;BkU%#DsxA z%N0JuLjPh5q<=JXXQ3V@R`^r|pM@SL3$@`vC5{b1D>=iXBj_RG6ilo%Ru)f=<6+9! zJIi<&8V7*#X!`w-J{8Om4Y%>1Og9HGOyUoq*VrYqZD}ToQK%kMZ5DQt2VIteG?HbLo%+B4uNtpGen`sRH0iG9D|&>cU@hSig--K3h^`?3xLKrp-Flrfex`@ z2C!Ulw|H<+@LprX&yB<1{16dX?`~0rnx_C2Hk3mVx~(A;Mme-@WTH#M&QOF(G6L#& zBGQz~31Ve;hLcxO)fM7S0u!o92Ss`4%W>6>cnEWjPr&?an|s8+U}RSH(RB zr=XV42UyBDq6^U7G%SaP?IL0sOvA=^LPqr#e8G5ezFJZy5ZQ*=(|Mfvz2bmLD1izR z$QY*d;VzDKgDb8Cel)%9m`?o3z?|b27DxEJXhVzR9j15f2504F(NLrMLx2GH|e^39_Bd*x52@U({RlkfKSI> zSO}kHnYGAZ-x*Sa>mVSpR8+m%5ifk}PWUDd!{2bRO;8aa3pL9?3$|L?OZBqVkbk6b`M*RKowE5PAr2J*rK4uKXpjS{0Qo{x+5@Qe z?>K}e6=sNstZ8D6@QsgYf?VE2g0u5}Ovn{BuAhYpC1(=Ya5=5&MTsmUE)$>7+(-r_ zKcIU|(Ubj6`4xb|ZxI(_v$ti_T4^9iM?EH@D!w1Bju5P|p(fSw8NJ73WN^K3((iJH z84WriA$TUpm%+tzc2Z_Q0u9C?Vymy9`k75`{GqnR3^<<&dm@c9)Pm^=b`J2ka+Y4q zUerIgJFx1t*GuqSz+toZ@vTI_ty0(Ww2uSOrmEF0uxdRdV^rC|BD~3N1!IJVw6k&f z+_cZ{o7i1lpZ9=Yb55Sta*L6@SbqQ;*xxX12EXCjsY--JIHsOmI-<$(eCv=9-VO@0 za=KU$Bld~o{rd352tI(kKu2big=hfC?o3hQ!n$@glyQZ}84=@LVXy#uwL%11h2^s@ zEBqAU{}zGKN_qrI@??n-=j6Ql~@{2M2*}0LPqS=#&JKk zP(NFlyKpg}^rYe_J&&$8$uB{{xtLpYpqqf(pv~w7zx17& zy@<%T3Z?YfKHqtt(e=r%d0Tz^=^?$}=1?1MjR^5-#Wj?N6<|yST2J{DfCocXqPl}n z-f6xPEa(Iao5`Yq3^4lcHQlcMV^#@PT{YInI#aujHdyXsaH9eTQRg%9r%xQ6p`fZ$ zJB2oo0esVan{Chu&LCevex;2d3)Dh3M7*U%kB~cdWx{s{098a9_yzvsd8e1!jk`m~ zYD@a_XxE#Ag0zU&S1s_Gg7cD#Ws|D>M~%5|B~aSUe9}(HdVP%}UW)`l0_sSry8@Nk zM%sy2Pq`a^c8!9m`XkcD8mktC2tB;s@Lm}*)0;snelnE=R zR^uf~4rJ7(SV1RvwGb6#7!v{oFsl_X^14R%KA{)$HBWM(X@`Ma6=WzKROKJQULj)p z*Y!^dws_3_F5IcT-|p-zeW*BULW4oKmi-t+$|-sGVTsBu6E z9hwLan9%_SH*5Vz@1g6!Mz)YS8rL9O((4xjC+_r~M`H2+VvmJ&X%&tSV7zNt+eRMq zPOEf&@qD%i$+&DW+E`qvvBMr{IqY}~S+f1~H0Or$?hwhqB zrg!R+v>d!a1hvW6ZNAhqZma2TOe(l_9tx#4F^CJo+i~<*q#(6c@}5$JJ-eULUx?o) z6gT2d4m^-?+?@zy^!9ge6E$NF$5231KK;>*$53P}-ctn#0MMg<3WAr-;ak@DK}qmW>j<4KZ^bJGL#_RtMKcE%p4wvU*Tr zL+*LBN7C#kMj{BJ&vIGZ0j?^85jIct7svCTg4RCRTXaZnyRInrxlqu-mn+XUWG77P~Mw3z^}8Y--`lh`sE~q7!B&b&ESgzs7Vs)rC`VCR+Rn`003O* zDA^5>w9OrKU-F^!9z~Tqnm;rM+~+1mD3hc^3v^!u)8MUdJ0;zk;EW~$RpNIx zJhy${%<2n|=K+l&@V3~cq|<0Pqw_(i5l8+GNbZNxqa_j&Zk5G8v)y-sbTIGG=vN`` zp!Q(g{*|?T2e*Ph5Ij~<20#~pBTxW zYd@V5C7b?LJ{pM4#M>t=c~8O5nE^>dC~do(mnBxpQR%^ z-p^=T1NsaohAgzf0Ujt}Usyld)8Ue1 zvlQ%c2D*WZj%OOqqRF%to*?-?)r5OJ=#F% z79CYiK3di{|6WuB%C5b#8f*kq6|#QK;C=Z3j(iW2B<~<>Y@oP%RKym2Kp$d5sV)(z znk@l!SdP?)rsE=LQalp+f3f%O(NH#g-}f=c%$Tu1>>{SjjQxJ>w=pxurZ{T|*_{j_ zv{NLNGBdVCjHpy%L?x;0vx~9cM23*0Qb-%sC`!USbDr0=-ut?q`+nE^-fKPUdDpYn z`}eHnuVZlhzTfZX!-nU*z9qZ;#$-Kfvg;t5C{9d`#8X#0qE;Wj)-2C5Yvf0tK^mUA zd`Rq!Wct?oJ+L(3i?B$@Cw3Mf+=UezafWl2r&-(t5c?>i@zDZ!aNhD4z! zop-HMKXBP9^TkeGDT@lcR7KUi(N!$nQYz=RiIjT@?L;sFVOgj?cFs}zsj9@DDgDXK zpY=sbbdc9L2bl2G)RpnBbIFpgZ%D=sT+xwxjA^y!8?B{Zd@xE+(BUKAzjZpWyZqQ% zn6*!;WX(Q2*7nfRJv*P>_10sq$#gxqrvGP@E!r${sVb%azaGrB1~{LTG7{3&4ilT) z2v6T|VC}se&VKHYnF~xIuZG7NLNL#y&BRSU8&ch}SDTgCP&s?^EePRp!CnD*UJAjG z4j>50HM0~s5(Nt@R3QX;%Ag2Mpo+>}H6h@dHxax^avK{&plv-Vdv8~NW`9&(_>B(` zLk^IY>X+VcoFY5vMQ*c|KVLah*jhR@q(Ir&zF%PrOlB9TSS%&fEgSh<4Jl*d&A9C6 zp2o@4W>ngPm%Y(P?ZP3gX})CmrXq2v@HCIJH>EtLzu#HU$0he{c9`W2hTOP7mVbCL-7p+jJrcs3B4YeF`274~G{jP~pdwvc7`T)(r7+d?_*vAqNl7s6SS#k|8&*orA*wg*fP!x6zp zQkCQD+ES%vzM-EO@3f8jth{qd%YiQEIx(#rvGnI{rKHU(`(&aiqWf}?8(Of6J(Ta| zDVVJv9Zk-x`4zoc@%op+oR5vlc<}-X7qH@l+Op9$T`bG0zkz6`P9I3rVL^@iOcKV4 zX>vQJ@AI2v1J;@8(s<1xqy!#fh#CiYS0>|Qi43DlnxBeL;wJ2Jq%Z+`kzDyjmYiz+ zRrUcw?9A1ml++LwE!@Clde!<#Ni$Pa#?^nVu#x|K08yCu?whg#3O3E5eOy0j(}quNG&Ft2dy@{R zK%6ZE@fO0&M``b1?8;_$4nP=hDCHQiZtNgQYzY{{x|h7_eu}m}(YanIo)*S=_VDIA z>t-!O9yxQf!b+P6fm_Ty|72%_%nPSxAq6q+S6s`f-Y-exEq*s?Nb^rpTs)5@zcR?T zes(GiN{UL9XLp6$5jrFlXwBlKt~Smc`7+Js!9Y{kD9VZxl<974^jGpq*{e9FQ2lFq zLH)4*c8SQST=92U>)4aM=ty?MMQr9S1rC7L*$qm9f4E|tm4qQWAXP&|IBwn>IwF9w z6wweGD?{Epqrj~}(+5wfGQ*qI=87_WO=Cdezlk+-B|~iFcz8pUW)Q%+3ur z`%2j?mqE-w+@XTI^X__1I77nVLDOu)9RTvi~_$Y}8Is+Hcj)Z{p1D|(ZZC#9_ReEAb5-hK# z!Iu#^**B-$GNhY&1H#mVyS9V|Z&qlHq!|x{-lL7gx|6%>8ZKiPlWFtieoIAWHxTcm zCB41H{OfM~p|&;aRq6d=Ta45pO*FTciZ;vPWd9$gA-3RAz_!GX{XEln2b9K&^>^#=b z)hW)_r1+dQG)~(Z-Z)87D9M z{@`Vs=MR6_+7MeJG?cQ-dcV)_m2Ed}RmTNvd3NjVit^+^wX$Q4SMG0|L|7dxq8+7S z20iZ$=`|dQyS^h_;(bk3Q1Y?Alh?=dBgej&4eU&hbWgl?&r|<B=Sn8hIb*im?KOOcZs+gbh{=oLayqDpkh>Wlu3UMCPI5I3oX`58 zggQ0R)v^`s3V@LJ^9wyKv2_mxQGV*FsX5!@i+QI(32&dC4=u-Ae!l#gfQp|+Di>50 zZu^|*6#rJPHLlzI)#APy>sK?yKYRAP`gXY|{++4v&-UVNwvn&n-#gfy9J%~zDKsPg z)vnf);}2ggKL|WMFDZFy^4Y5&4|~>M?6&(g^^^bVXDjLq@3}Sua;E7P%Afgmu{Hjk zd80@fb z+MFG~HZx&$sV8A$xs`vhvhepBiUY`UVDaeRI(8t1gYe*d&)GKX$3Z1=(Ecqi6D9j| zIHH{#F`Gw1F?Qlh97zOepqTTsf&-bf$xuiQGn}7st+Fv~@=2r&CDKpLHieotrB0HH zAL(a!8)m6Z89_F_+V-Qg4QtY_LTUfOvqQPItH-o!s7k`iiJB$t+BNNJ3q+mKc0Cia zmMTdf(Ltyo>4uODO*)LlNCqV&laLO+Sq9N)mSmpWVJS;ARV7<>cG%>%ZaI*(b+p3{ z(fLuS{h>%F*@W_O#{LJd!#I#(Y4)Sk( zyWcLD(jC%SPxI&wi*Zz+>Drgu9dSS>tfYH?r=u~x>%eUHq4+DFOWjejPCq8PkC^mC zV#YQOSY-wnzR45q&%WQV*> z|E;8c8UOy$k{#ml{bil~qWS&hvpbN@efJTMVN-n-s*l%y_g7I|R+S#tgt#nQKdwu1 z`R@0)zU1+jQ;!=vT}ZmteUBfvB(>gMddvxFxhFf&jG(;!_ub1G7iJCp2KpX!<&u`%O?*jTpZqfb6Bxs5u8^N27s5p$MdXA`tj;J3S(MTTAyf~tDb40s#M5k*+cWgv&ZbW~1!~pq} zAotWz?WvLJQ)7pxCZ13ErlC*Gjy*L`erj>?spZY5R<%#9yPn#NJ>53<)OPu)9deW? zH%d|)C7X`gJB(61M;$^(9gmGVC678^9Nm6%bVu!|OV_CD*ytZ~qdS*JcOl29a$|04 zWA3J7yB)?nJjXmk$Gnb>?MWWR6$Z9Ld? ze6PcJi061{=y=$%@qNkT;TOjvZjMLRj_>apKQK0aaBlq2^7vuovnaV|N7SAjHGLNC z@GQpj*|E@PvB#brPkt76@!5%+&ra4pJJt0pe(c%lxo2mVpCuqC=yDSbwF#!_M54n) zlIKKn=tRn~iPYo?0od;B&54|IwG-)G6B%O@=jSFemnX82&slQMv(=toFnylm@I2S^ z`Nh!ZmySKZocuiR;`1vveKsAez1sCW|6s3HDOj-lT)VfqKyI>7ZL-L8QY($5od@0w z^)0z4b~|);la9@uo0H$!lU31IgxM67;KsV_J9IZg5J^<3`CUJ4eVFtD#@n>jRKCpP z#X|?b>MhMRf4umHM*mGn_$SypP@o*X_n&$?;T1>$*jk5DN`0e@O8aL|r|18UkRVf> zmLMc#%f4_SO@@JYp7n;>`|YGej^+^-u@pImD7E7K2enkRhNVN;dQS&lge@8Bv9@O~ z;`!D8Nwjh3F-lTQf90Y47LqXNedx3Nx7{R!gyctB+%)}V4@e^r0vJq?hxL|Hk&r3l6@YkgvWi`6+dr&HB5i^Lyor4wOBE zi_H^SAYK3v@k?VwglyhxrkI(arvq(#&m}&okZrf4KvFO5G^awS5UR0+9-e(&;c1~GJTMh95NM*pn_zT@|CQ7em=X+ULe-HeNE{A z^)^vmth11)v^EoVofJW17DqS=l*8^R-b^9QsHk?fOT$^#HPtkzlPG_%pLOjP6MFA} zSaxFF=F9R=ezet;W+>kf*4+;@M} z?6UX8XI}e9_B@wfx=VguN4Q9ok6?9FYF9PnUgsmEl0;tP5ufd}ax3sPYI&w*L@nC% z-8!IHt*@`DTp4QQV}TUE?9l&i?1eP%eF?&kZ1yfqsQ(r5C^wCYx~wuGO%wl!`vkrtQB|eP?gP%xVP0D!;tU0NYHQ! zli@FE3OTM7+xH7?Q*4(7*GG|P?feRlR{jKz^{Qyxm-#^3l{jOEWi_!LsEiW1Qv7@+ zZPDL{BFP;#$KIGfckj6`g&(D;Kqg!$H%|X?$w*vP;fzM_Y1VU_>!CyUgY;BdkNWY zrUwz2mg!w2xS#h$2V=FTf}qVtU5S8OCir2m)1@@2;kCVoC1iT>;c0*nc@}|m=Mtq& zp}6(ELa1Lrjp~VPc`sM2G{;X1UBwiiD#r>oNb2^zJF+qyurt3=gKxd7nNq4?!U{@l zBS^>{t(uAKOEeP^6q??1vCO~5?3`K$*SDIf@nO#h>_-V6yAfx#)Q^FiWi7-*F8fo^ zcQJS{_+kbtmiX3Afr@rtsR~Q;cxQ*LL%)PN6Xg1Cn(8t6gN(f3YiO-NU1WQ&<=9(g z=lls9QBe59X4OmMA7H8KSE0Z#G9$YGrU5Fr`$IPQXv9jW1RuurR4)ljvPma3#`Y)l zem@{)m`rSZSCg=EAqn*xu1Pe6q=DTac7_>*hkA4r)Mbo9$MtVJm8Ap21$@Feb0m1y zRm=o;v$u!ncm>924#sX->(M0r$`Ys00Uy1z>Ht$Yn~kTTu4x`sD4` zw7r|nQl_EYthCv@%>m3qr4^OoH0WF?S zkpQG$L%sTu0%_qg=T~FT$~745?TTfQ`)(*!Be6kzoZY)Bh2vv!ufbh=^MBfahefw2gFDQqdx^z|r&cHoMcw(k z-QUpnkV|^Vc0gkNoMM=tm@dDP$%rC>dTckOGeQ3q??w^Au!eYMdY^+=9v0q4P$`eX^0W}9 z&h_ZXjN|P4*d@|ADeUk@l$msUF_}|96848hATW$^J~p`7{{Rb<;o9A9nmx;_6?o?3V5y^7CGuLJ$uZd_mc=-E=!zl@7D*hSM}OLNwJfnu90U?{knIT{2kG@kWbs{;!G`u;Nd1twR#IM z+2FGs@_~FqAO7#$Gfc$+RcHHW0ZKn;8kZ~~K()+m@RxB3{z<>E`rbDLcxNs4dNpay z9P;(FU4Ns`2jD&U?X+a*q8apn?P+BK1K;S%as#b;c0@Qqh!9sPd6$P~kaLfc%e-^? z56Oa`XW&KNEGn>#WsT;An#sAOcp8n%Z|h=vTevwO7m-6VC%SX>!U!;J7PwHkPgiJ% zV~Hmh~YGsOtx{D+%bTL8CbSf_lQf`NKLf zr{|)9`G?g0*qw9=^Z?=FQn$a0m6+t^3&)|yD$obxoJIt;-S3nuZ>^C@AW4us^35WU zoJ2U+Jt!P{Qjywn?BE(`r~oOPjI~1=+9HY85_Qg9swY^0X=TZlBMMH$IEeMb&b{>T znNi$*rXg7531WdpEa{OqbOafFB2?-%^Ju`2&=a+wesORK-gz^c(Aw_&@%BEJ1q2Zp zl`%0=SW(q*qjN#X026;CSv$!|&p^I6;F>I0Qa zd!^=mSy4$J6i$PrGZh}0V34da?F5=es=btCAe)uOa&bH&sN~pcb3th$_(U^Oh>qYT zTDv0Ciqz3MF=zZafHfzxI{aLf1*BPHb1N$LeyGB64@g}r1kF!nj!|>&U4~A-h0;CH zX_W?h9Gv}ov=z@n446-vpb%=D`Q60g1`Y^Y0(eCZO^zPb7SyrWbEDi?D=jpdV|^qp z^+Q^cq?)DG^jSD8a*LGL8Wh?{$UuYy>joc(9*&4au3 zB$wq+S9o{tf%J&r*&u5nmdqEkfW4|PgQ!?NY#!WA)Oi#LHiy!9NNHmBCM~Dv8ixr( z;TyfdqesrH)_7mo3(t@6&8Z`sm;i%XkRx#AEng;%MoI^9C>N7(K7Gp=HoW7QE29&3 zP7^YU!d9HHzE3#IH+C|D6ov_#zTe*V#tGN92SNzDByb99y?|0p+hCvYEgGq#iBRQ| zv93^LA@{m)r4cgQOHoR+u^udDhAJ$=gtBGCpjhAJEwH#eeQoFpO~HQo*b};N-n3YE z1zfcPKD>8VcNBamR35rgI;(5qE9@{-cBBdoZ-SE6pw&%zFVw=KVM71bs_K1{7lLWGLk8HU_!+TZ#QV&+F9(7y6+d^Zc4)h+GGS-jdGPIoZq<=ISkwe zi*|M;!7kP@ROI&2RV~}9WAHS1H(Mlak)*T=u7+AOG%E0OPVEn4?jcxb=SH5b$ zbtDB~kt?5m2jrsQoB8R0UT6@yHbfyxw4LR*+_4$MBiHR#N?VlE!iu&YQ?Tm1iEPuK zx)kgvW68^@fN4Qr;Z<-($uPYHo*jf(y?q9utZH%z5k%%|L#8i$Et&*iW7v)1FgVWg zl8>M=msj`H7tXo0A*g+3@8p=$RA%hd;E86`YQCKKYy>p!{dDYurPkf?}x4eaJMVsWqw)zQEx`~g-Kjv;u*_38SXXap9W zzHMdb7}X?HY5q6|BwQg?DLQ+tYYqQRpR8Gwhe^f7x!L+OLj#)7((0bnif zW=P@7R#q~BmUh^XONiJa`LPV_j(p*jD!2o^`BgY1eG^oj28Ue!Vib5cSPH#K^{>`2 z)MO!H(G@vDf2t65)zLSt9U2_2End@-k!NlF1tM$ZP{Iu0GJKpc8%AovS?&0R`@2zl}}bt-V@(?A|x z`@~VLJO|iuQ>3gnysQb3c?#s3c+R%Nt~?Dd)M~Pt-!1JXwfBh3>nck~1=K^juBJ00 z;ihUt72oa2aUqbr6zu#R&?I=%X?NK0r;Pe^h&S4iazOzu^WeNO)Kaa1Hr7f| zejJkR5iT-Rt%&enB}TsRXsL=&%!efNvOiSeyfhu07^So8K<) zx;bT9`Mc+l4P+TLATwuFD&V_u)G-y>QaoVex1{YJNF0D^5c<8^Zc1YXngj$=Mzhq{ zsx=8FGS?M92VJYux{;`l9wx|VKk+%R9Tjvhm11Vj@cUCcjJPD1%=F=0(1`04fH59n z+hCXdbYo;5fWsCB`5Nm*=7CQ=qTLP3tMD51=3KFkk!!X%z7e>;)3E1eSN1~x`WuSx zf&Sd`;TP4=+gRg;8?Er+ywBQ@262QO4IW=cLDS%KS7^9tcwKIE?lB~89L-oF>b!M$ zqoC(B48HQUTJ9g5lO0_Z?T{n(rFKHm_;F1W^P4k9=7Kb{ZiDb?a7EXJY!3^x+AUx7DEfxh{ZB(z#Z~tG30ZtrDg3StFD%IWF`0sEnpU((|^AmwY~PutR+6?Vl>`pL?GAre zn3p}6;{Ib7o*x;WzPzTByJV_KHK^2sN{!y6Rhi$aGLI>KsY}&)by|xt5>gjAZ6{#F z6NdC{XG{WSjHPC91S7MS8Jkx#IM|HQml?9{ETsUlxIg1iFuUW)3~__(vN1~yn0DGa z=MgZsF*WN|Fz0(edUwlQz{Xrv^m!<14=vzbSf-9l)Ok|;y92M@h2!6ae0g`&cK*)` z?_?_8#T3k+3{Z;_fUP&?cLvYLNxV-AcuyXgPvIB5Ki8td6o9Qa-V>N}EZYycPq2Rm ze8?;K@D}&sssI<%g1IaJTibrDX!}rd=3{B*=Awd+<*z=*27SE0^;6ZWO?PcS)t&id z$ar7h@~OE+`uwX;oUIEgMW5OO7P>Q~TF)%>w=AGY3j-Sq{RInL+s|EJ7Dmr}Zqole z(ek-Y;?vZ|=X(L4rft8JeEB?k=1YP8m-j7SE*|=_u<<49{uiF@*OV_`md<=l(Eqy9 z@-^nr=e3Qm(f2sn79Dn_bZJ=~Yd9~!L zVqxHF>4VM1g{$R$TCsb-dvkpO0OiPhZU&?~M2J%6>11H z>0iLs$%@A`TrRu+3)uRlmO!v2OdBk4xaRfQx9;G}Ll~vEZGQg%TkrWAkQLnb4Tn(SqKmXO!$*Mm2 zH`scpcgx>k>ua$Bu=U!){SSYEtu5l$*Vp-b25kY9Y6Yi%#h5@s%FntGg#=*h_G&1% zf-Gtf-%k?z3v7M8`#V7Zwzk>6O7^*_D_Nv$`s=r{Xy|CAld@d% zq7yE4G|LH}MXA~*k`q$Z$1{of3vBIoQ~eQibA z#V__~w8noQa7TDt?aus~zukJ~_tze~g!P~EtqFWSiY6E%5y4GdI*LLA zkdJPEZzfyLPFK$(iHabW6ET?KgPKONmtDC@5*9`11vfdD zaZN;nNr!QxfWHU{hu`ZU*NRg`sQ@&u-jRmoz#J(z;F0wdMLcJZC_PvoQ@R`61prL|F53TUxb9=^M{lECL~yOAJjj-*5e=WP1@$mqVgHUtTJ-5 zGg)GUl}wq%$z5@F)E~({uN$%@huLE*Qgwk9AEIv9u>Fr%0U^PpL^aEOle++-j?o-#wS4byGV~Yarm;NM0A^o#90RA>oOU zChQ-wRRJCj&}9HLpcSSG0BAmN$Mu&}1-mWrAFS-44mk4qn$i*c8+7V_nFOtAd}PDr z#J&3eL%DwC=~j}TP2&F~4=xccxHX_&TQ>HWa=okf&_5NYCjic0i|x$8qH%0m^5GZ% z9p(Dng8ICM>V1zCH;zp6vO4FVmVP>~bXG<^^3$u+F#!0AlPJH8 z^AjXN+Kbm+Nd%K`^SJF!n!qpE4rvU5v=1F=ZI6~A-{2D$vux%>UOi1*(>vOHa>()3 zkcmO-cZrY7lIq%)x(S{?c07-wLZnfRwC%)S^BxG-&rvK1WXqmGhRC})jN>|K1@y>Z) z!JR}Yy+b8!BB7C-ka+LfQj!R{qEF=-Iq%9XcP$!=DW$V^cAljxEvvHo>_#FWDui^K zA{I+|FtXL97A5`gV+y2v)5v6U31av-bZzg)>IfC*@XWI?p=u)!LBnt(@nex^5PM&C z0_X>ox8Ew0MQO6{Fm9Y&-7!=6$QG%Fkf743ap-N3T$a!r$A>Jn0oQgm8A*%unmL`v zyo;)hyVckooAfd7aAeE_mQT@+2jn9nSH8Ocl(?&Z-xR#!A&ijQ#}aPXRMRHJFQrS} zQXq-F?aqkE7_L_e!UzlnpSr+qnTyoJ%`KTz+%UBsU4; mnj5)bW#MW{Ic8oH#4R%_2y^&pb(q7Q26-8VlU#k@Ei`~1Mg-6!`i)IUD-A(W~a z#X2PVu|Ja4F#i^DxZcyNLakvX_I4X_=-sEU;S)Eof_dGhwJUYt@_t@>UeNDd!U*I1 zTp@L;?qb(vPk+O1%r3{uuG2+aW-nfH6eOuh<{sUy@lcgV))QT-vNt@Ap&{|%&4;PO zUenP?&_SnW2i^l>3_J7f$%w&?MCLG9ORGW14PZt_^yKuIWEb<#-^V4k95kj+ZY4Pg zt7*o&J(U(NCkY?!IM6AxLm&m0o-8AD$$C!lIc@jV&qj61Cv_|$F}u^Ka17bi1$@J= z!7`wuy(9|SvSN@rSp0>aBCZmiP9W#=qnRR;=c2%Nz1zC0A5G#(@Cjsci@l;#(iw#O z*@wK7?K{m~+Jz&ihV2vUwZ2Gvns?jMxR$7mabNz!ozy|l{%Z_rSM*}4M0oT|@cXO^ z8IA~Gwe~7^1{AJ4YFf}x+9m8@JMDBEAXPh-x{lm%$$@KmknAjJJ8>#XSH#LM5${_5 zAtYUqs67k7M#rWRdcEvEqk5yw6hQ}_@Cv!-87J@FeIe~U;#QCB6to3TSv!iO?6HWJ z%9xfaTS-Jvqpaj;tk~=vB95>Ao<4$mV5^r#RD>$iOla8XY~!mF9w{|w|HF}<``fBZ zE)ojY?GaA)lhwYabQ9gTNOT_lLp>*%EXzFa?ox=U$D$}}I3&WY*wL3x-@K_^;wY~e zoaNY+z2S+Xr$H?n7|JpZlnX?+i6&|=(9T2FG@I9_@ zag8XZ$~Px??25he0vjehI~@{OIwg-Lg9aX%q6n!r`2j4-0DTyBR1*|NTu#Az&`}Yk zWW`w)Ur28wQ8cUqj-RCo8GFFegxZLR4PNT5jbiY_3|Voo0qyX%9<49H~;uAbuxwY-*t*PnQSIy}xZQ zOXb`-!M;QcnHF}(FfNUcO5WMzMx~S!5$-u1c*rfyVMP|Mz}Eb}sclf2#?DMPO(eHg zp!HWWM6*`f;hHWjPEp^L6Eu}&2CoYCZuBB!NGh4+|17(5Gv$# z+T~ib!CgT)Pb>@+A&DsE-xu<{$oUkY0V)aR@P#WB!)OgAj=V=M8JM(-TJf(X6A|gu zuIPyRMk(*(^mK?Jvi12(*hikS{aUABE$8|rRz6S9<+^03vxuuru+%X0!LX)m#h#9zpcHoxoLNXc+lZw?8NGi$_(eW^;!1@Jz3zi|n zf1|7tkR)}>6Ewz>g|#>{swj8ElqbfSY2i2_-~G>TKcAM24G(m>r3NEUzR6MlQ(0R? z3f8xN6o7jd(f6|(NAG1K>(!FO_N=7BsIUYa1jBo{A%&e~`0hq4_b?C->0WXi@n)R~ zFZqSmHz03{hyuhz(0x)1Y|q_9B%T5>9RPXQ;jJ)n^)|A++5Tf1)UQ!?L8+h#CB%NvFtV81oMoJWP_k@50Jkhd0z5<3Wsc&h`!6z8SR zOZR}#gMaww$5++Xy(>QN;tx*al7dUGUrH?eJUOi=8il(9s5-kP-4KpyK7qc4F5{im zQhD3pkA)!?Sbn?W-%82=##&o(FsWJ26Q6?Voxe2bfp`FRqa>^%lJNCaKm)j&qpkNl z?VOe?_9$AT49&74!BsJDWY$z483rA;w)y_lgCBS3I-g1p6cBr*b{)yP9Yw#?Qa83N z#n@7DGT7QC=4?Qmo(LYx#2J9XO>Y6v+t01@WKmU2z>#}?Q=K9-+H=ozz~LC3A-!UZ z+qTh>g;Si}6}%pLrC-+h!h7Tzvbs;h;g-hEOB8)q{KL|?&iyznif;?boS*}uOxnJL zXVanqM9$je<5rk6Yg{THi-;sneUTo!tUHAh79u`Y*nr7-mc*VzEm=$fG`5suA1}TAR8O7Rl&YWZ$9V#8- z?UE#NV%miw2NR76-)VoulK^fmi7Vxy1n_l-C`JUtkSRGNY@sK693hxWI8`tosGg9g zzzZ})ht&duW23v|mHWH**i^vHQk*Gfz+7sun}!>D8tLtsOp1*P3vrXVB!qHuI~aCG zfequ1A6vK$k0`N3wYiJSxrX#0t0-<>T$4|m{PDwrVDEU;ZC9;%;W;%p_9x2mm<@_? zT0+yUY~d%L{}MXeI|4!9xjNS%>BwPkW-{RN+Nkj?IG9|}-IOdf;u zsMJHbZtu{+3!UC^h!D*%2Mo?KX$ke%BxWQ8B}0JO=b|L2a0vCMt%;TJ7(Jbrse$D#QR!mxwgT!0NrjRD~n4Ng@G6m_xJ)oQh_JBz3QBeeQ9P&`r$@MHHEOe@unB zK)y+H@rqID{=ZN=*f8G^q`wb(2Vs{NVgKGp0wTYOQl{E6zZ5K(bE_PQtUh&e37K|SkD+o zAaebZP=(gHUTIT|gTLi+?qVeo5#-mV0@_d!fj_By8r+F}o%CJOdRnuFUu{ZeYs)8t zBbzN1Wleha_=zzJYUc_hWeY_tAXOUNnod<@fYt;p&1$&bjJ6GS+xndp;UM_Nl^ud- zCvci105Dkd1em?+&+S10e6|o|gFy~rt0o^Ppb^ba4{oxXhuo?S2^Q}DTnjVeZntVU zg28s9fNCdiw0+RzZdP8sV;O0`bM=>lP?-rDNfBDrwey9(=a$S|DM2mn#Sa&ccNeTl zm!KDSTmPb3$Qb*U(1{@??R$+RLmdn{OWcZ0T)!K&tC)F27E&f}?(@BAIjKA@lV50P zR8pN|Qfnk$blYg}?agm)98oNldPD4bFLPD3H0^5XxyI5A{$y$9YAH+c&IPMGxxRNU zoxGEG_0HACJNc7$3Rds170Yf|m6iCG-8xxTdbO;qv8;Tu?EY$5h2q^RtGhM6ck52x zt-pG=vGH#6=|c>k@{{aN4p?@r!-fA#*y#`_DC_rI*(=P5q;X7ymn_rZ^o4_2-| zSZ#c;Hu+#<^#Pz%0a{le{3?V_RiLj`h%{A*ow|#w0K~2J@fCn%g}T%!P03T0T}G91 zcPkY{E4QA~#O$xc>1b~Dt4cPi(rl{IeNmP_c&f(vTFs888rK&!JAcd!URXS}G-{9VsdYPewCkn7iQ=~P4BwT7!r4f!t`3Vt`Rl^SnY zHV;aR653b3aynp%E0ag>_dt(!aj zn!8Um_g-u6Z)zTR(fs6hGgs-+i1njUzenSz9!*?(G}-iM>cyj1zaLHWm0I3fx6Jyr zygSwM{#wh&rj~^lEnj}O@RVA=S+_3vwf;EOx^k^`wW)ROMeD}zRsh2RZ8!*jj!--Y zozD?z=7>#kB-S_(rcK(WP1e6{Q+%63ew$)*8)m9)>slKY(~h@kSM_gKk8jt^Z`W>a z*PUwDUu!2|I*e>OO#C~{;yWzzJFJ>JY^FMF*E)!pPO?oW#lO=rzSB9sb4PQh>s05? zwN5Ig%iTu6{O|IL@AA&?@@?+&pXv%&>!M-0gKfG){JX>AyTkLlBb&PqOm!bx>yEgd?B0JO6 z3kxQ1oPA!BryuKcGeda0X3-_NSS{#!&_*ekkG;_lmW2{jvWn8w8@Cos7YXMGsS_3D zM02aSo;NSOOZspyu0=MYB**LIozklptdvBKANnO-a=|v~<6RXI{%HGMtx7H#BGq6M z?;q&ryt8YR7zH1w_tA!LNp)R?L|Xc-%I$R#4Dzj-?c4}w*^Sjtc7>5q+&Y8gos_Ra;DCcPkF3>fq9TB@$)GiEXzd5TBfyElxE5g@y$t8Q> zzF+6FIPc2QO1W?;d>VmCjFzmqMa(-l?SR{D!gpn%9aX?ov^0l-R)q2)`~|O_&Os8% zy;9_fG6$NFL38ioF7XKd%-u>a@RKFEO`>z5P5J`RC@SjSKt?3@zU{Kp5!*&ZI`FDQ z-?j6Mx`0^PlXOCvx8V_z^dVI^tgI$S!g|5RP7KKDwC{&WtPMXQ$cRk~TP@ZkN~oiW z+oMIzdU;q<)0dMKVh(8HxotUU!v56{m#6No9{5HFv|h0i(c!$T216Giv}|t;l?LB} zq027DC9R8*5$|3mZkC2%#$Sp=zzLf7hn%+bi4Zt!qJ3)t0eByvk_gi!E3|ue3d%~j zINWqd>8exbw`Cn+F(M#M^+ECxtoz9@onYyTH(4eS46q?9IBL>69ZgK6dfAf6rCoX( z+*EliN1}ZtX$!VebWb@gOjR%m4!b3#1Q6wZR3vLqaOrV8=E)!R1@H^QnRWmhTA1!u z+4|;utSp|4y26r0(&%8GvlpmIgdr--q!a`mk?46 z>!24|bPkyib}TPGfiOFf$`4ns#J>p)kT1|l<(my%iBNXt9Oz`{ve6? zVi{w2X7%YfO)!MuySHTgqT&&*R4gk|E3HFGQ-PyOMFZg#_7V_*qsM)N@RusOi!5af zglu|M>D8Y_B~I-}6e6S7RwVj_z7 zw&AcOafzt(Q*j`GtbeiJmkwB>izC}L!x1Cw=W?`ZnZAldV1WHxmNG5VO|6oT3pyuP zPM2-32YE@usc0;=K9&F|cvdpS>12hlG>!y*+DE^f%}4b$>7hd2h={xP6{Qgc*CEcF zn1F$Ii;ygD@i;rGjsxV>qqIjYgkv!sn-=SlU@XVxBRDPdgM|drSanbi7A0c=T5uOr z;c0KTUcDsvm--DI1r%>Nisj(lt(bUX@s=EbxRu+MF69g;EUwtYL`ae$ylLh3iPVHU zf};MC8^WOi298uj9*4~|3K1zbDLAGUQH2SvL`{(~dwkO1avz*iwL62-bGqT1^Eai~ zetZbzZcPNzDw5@^YGzF=QG0AWGdWk5t!p3^2J(rqhCA3Du7 z&g;?@qm)X`bm-CdJ>X@DA27+r@TrhEw^s^U!G!Ra;M(mQ~D-dyK@{4dr0POBVIOt9V zGjM>ET?&BYXr_T4Q;*}l4)!d^M+w(N&5997nX=zhk|(d!>ko02&txykTJ#~bXs|hL za6J}n4_HGSzUq6@IRkcwk|}o;*dT}>iJy5Xjb;KihT>s_y@~}8M>viy5tO?NnE<($ zawLA&21;MrzC;j~AONK-I*J3YqtfT8d(hr?MpPI;J#In_{>(xN60=bfv%KIk z04OEerJ38MnkS4-i~XDz7DT|&wdR6`?Pqp`Ah;8u!f^l~O#`%?MMT*^w1bbOGxfLz_+(M>_NNPD=M4E%pw3iUIG(| zl?i&kL=}9i+Br*8LB&;QpOf8hvd9vaB%enK@Pe5VgBMsrC?XKSO4JnSpaJs$Dyb?; za+-Vox7x`E3{V0o96&>60b&9-*=d4U8ew~El;~+1kU$V)^0t4~jQ^Z>kYonf)}b#f z{iTSa_HF^kesZw z_IvjC`@U!IG4?NKoFC2~;27#a=ks}<>%MMVx1IAA^#$pLfL;LgHN!S;0zZHQM1vG7 z1XN0MPx0fhV$@s6rY;rIkfH|VDYNIT&s8F{Vrk%7sUsjKWLqq+wjh7xL4bl*e68pt zgBGp&^?d3vF5n>*7;ga9j^W27s(;LwlkjHb#o=1S^V%QYCQDHXe^6sN$dk(0Q_{oL zqxd1-`T`cYiA9!*DMKP$LAS0gdd132Usm+M0mDhN$nqS?{C zjYY1N*Xh(K;G~p|QLu$c^KEv~PO)}A$)vvK<>sY%s7qCP%T<`LU45)wK(4)KuAJ)Q>BLM&8p!lR*CQyT+Z%lBT22DPsYk@!`zi8IltE!|v8yTeL9i&76 zoXd5sm5`bk&Gdq15dDbArM$b+n0?oPNj~4bOc(5RHr|Kd|_*Q z2D$+q;iM9B4!Wv3csyhmYt^>6b5ZGM5lvb3$CvbQ4*GxzDx8aoYc9OfZ@Lz^{LTsv z<)E>~2bBz5q7;QX1W1a+r3#~ z73!{G4XMJ0T^HsoUldBTb9e|fpdQ(v`>nlI*zZy|-+QLbO$}J^`q_ER`(7qFkk$hq zi#?mKSB$`0_FkdXB;TgP|D5mtKCOEILO>1F_}?G3(`}${a|TSREpBJ39<`8Tu}sKo zAr$Bs#|`K#jcm@E9lFvZ+w06d5!K+1gMUq5&>wov%;||?v&K^0WNKaqyOLABu!tIc z{&4x@TuY}*LzU$V^D9h(;rJIzXNTt5&Sc!S=x1ituAwaSch!n~nd|dvPOuOWr>CmH z>6I}fmW>h!O?F{LKv_g+X8Y`jW)Otv19#A!JZ{uc>M9M*i81aYJW8#^e|U*1AZ%-j zZ^-3cLDZC=4C9Uc9;gb7BBJk?Ff$gCb^SMXxrU*?q-f?CE_=YnG>UZt$?tiu#m8Ru z;G)LWR!u%TrzW>iu1v>2D)-wn6TIRuHdX4Ci#Ft^5j9Iuu0A%VjmGhVX@)0QjoP_M zc7n}0TNZY&vOR&M`Td@s4#i#i>1>QfAL!L0tVW_1V(9I50lG?;EDmY%sX}P*t#>xg zLDpl;CfVd&^CCKL9e5SvCfDgkZoio*iCD8;o|-VHQvSM7b9w}Vauq)?Sl9pzc3>?H z4boIjgC-8$ubT|m_U-)C0}DZ3u4nwUkM}*xCrn77lF?V-1nctykI#sr5GwHn=PU(F zu(Du>8$|MLW|E`$ludLi5#Fu?8KU}@anga>TSYjuZ@c&y;y!J1KEhXXn0ET$k#HFm zP$>IoE_5G7zGpqa5Ru(`I94f<9ULiZrqXK@8;bU#IG)7AXwq#8gAYPnZt7J_267QF zYcSgqpL52sERJ3*R^9iRsKdgtP`^jd-?RMIaE{@MY+HX`|KW1ql^31)jG61VzMpBvvC% zI^1DrRH-T@PJjL5-rRcOnN{eFWG^D~`B^?2og(t;WO^P##?4PnEA3$IQ=_E|+x6ckiJVwm)&FMS#0_>50iT(7uEb%QCrQz zki0mcl8t__n;c&3&+riXc|Jx27vPEj*#z1`Y?nq*6?0XHu?{&Qloiw7ZsJO8UR7^S zO7v%SX8J-$q!9oasd^$+*>ZzG2#sz|zbntQQ9f%T*{li3JO=ZL3q`OV-dhL7RvFJh z0-6EPyWtifk;T{h!Ey+A!PZPt(5!~i43sRXdCpH-!h}hp(k0Uq-&e3+77(ALFCgk8 z7^kn^Ml%gr`b-A6UUh`#dtiTacozr(~F@`|XABLA{2*EzqEjqr`JyD@ZEN^n8rUc0b>iUoo__*#{0i z2+B7vp2!Lc2m$8m06H@kKGZ6XmFvJ_hW%9(Xcif2B|IGxux~aSKbyRtcQ|g6&*XSB zo-CR62E%@10W)JVh3*5ezOZTK!`YwmA|G<2vlaNz+Y=(Z~>Vz-j+ms)g z4A?DFb_Oh0wxbxwhV#zPj{>c4`?)>dUf`O|CH|gh1z(SZEqp&3nUJu;^pA}Ivzw1! z%mGg4eOwKAFlfz43v`KT?XJUs>;b7?h%qcYCcD0~Z^-=YY*Me<^K>-w$!M(b@d2dp zbOj)V1{h=?yqq+~f9WawnFTfwT}9qL#^UXy8g{Dg0h2Hg+3{k*^m>e@1%So!dOaEZ ztzp&b^B(S6k+gI>Ao8uI$O9>Jd>9y`>snsuK$+38XO|9AC^2^-&S|pr%u8|6(0~Ir zMUsY{bd@sOx6}4c^y`s^N~~lcm8U`{ZQZ>*E4KqRw#>x5y#r=X%-&%%5ak^-qlpz3 z8!%Q|1^DpaLkWyUD}Ec_bBZ|cIdStt3J}4_Q@dMtO;ynIoqC>^)Y3N%lD(aY4=>FI z{5JI3c^+SELg%E~<>4voBN~C(2Z6Gk;akfAw<o>CL5$OJoyy-D&VyI;UfeVOtQ#c

    K0y}wP0(? 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

    SgQs%XjPt09AJ!4os%1VJr|_*-rr2$s=N1 zIERQ#XxH2FRleKJA^%^C1S<7F3i2V?6v$fTGGbK8{irv-opigZ+~|~Sy=Pe2^Chpn z53(f!(8_Ju8|8E}7LBAYxb?{J#UU^KFGIMwnW5>4!qbx2o;Eu`f!{CmVw{w>oL1>jkH(BZkd>}i|nXv~`1Z_AB}dq|~{ zSvEcX*(giicf0fJQRtmAGM&FhJzzLHsJLlXt_2_c?&G3QZ{%PRYoV^c%1>a6Ms+0| z9n1@<#QBT%cDf!82^vvHC9$=n4H$<*&MU+9~)Nl-I{H zlx=Pk!_=8Zl=5RU7489Pcu9YBvTGN>xx0W>W6a(cRlQ-p$;v_>DBZyCQ71u_>iaCF_i7q!r9gWB8`i=65A;I7FwjG;)=#(I9Dls z;nMCNfW$XB`tGPE9*~B4pWLFqc}nb1+HY9kf^1!D0R!ny>R6Z5`G*7mwNwgf$geDT z08+Q}`}N*AIzVX2`X#Cu!*!?Kmr)mKOYjIz9RN~m6F1>1fqHkd`s^sGG=qV3lN>}=VqO`n}-l8W@@5f)=jwVL9 zAH)E#7H+C(d7eWyT%`oR=w%gy#c7P_MYeEdbsLyAxH7hf~J!} zbyr3K?>2O~BOkQZY1XiwP>F`uTxXDaqWM0Hs0-=qY9g@<=Zn$n`K7Y)YP~^|~cPb22$YeO1<57n%asXDhK}vp!nIR+Yj$55c$65QAcI8 zO7Y65bn1+l!sbK9Eb?y|^`ngTga_f|E5`u)6%`b;f-u9QePz&w#k6Y(5H6-niKt(Z zmFykpNq~al$C)K0|5oy-gEE>N!6*^*OBwAWKcEr=6p3l$QVQv=9|nQq+B2tE6wQ!; z3=5&nDT~JI|z=ZJ(Tx)y&^|pvkjf2M&d1_KjuM1%#3piR1F;!LG zF=*mWbw>$Mz#u>2k_vdF6fU5G&5Ic8uc=Je@LzCN1&iDzv-mKA>w2szizQXafjzP% zT?r&rwLD(c6Urd9F~}zYP+j46jZYAS!mfN`vz%PZ!ce)%>$s%5sf2ot7F8)Kc)}z7 zj=|Ajh}a>jlB3a2ESG77%?trd1gzkZDXth;L4#REckM-c7+`A|_;vPVQFdZ?BU}1heER}&k})Qaoj@0!n)=0jUTCnx?BDMF9;%i3fBTkj>1%2EC!PA& zTSEP>O*#6nn?q>T>R2@ZIP!NoHMBpq#6^`(J-_rY`s814iIptXI^3toYK>bFKjbXu zbl}s7e(As5`~O;*|L^J4Lyqj{=?Ene7bW8}%kXL`#>=Yx;kj!C`YsZ#AW?ERBUf8} zfS+m~sA2o9#HDM;$VR~_T!}yZ$rWr%&a6}O?TRC#pF-Bl7rrRJEbCG(9a_w8V5Fun zojSQO#iO27tC>ba;naox40kP@rEu1W-z#NxbNm9yWj3C(g7H3H8-a8N2w-PUzuPmOfh|Oj zZkL@vs%w@RVRe~i^!-JI!yUHu(M(wTQp-@F?u+wh1=Qx`EA2paKFcerJ@V)q(f+G4 zFU&?p0*cUXd>F#IwKH?`YBh#e<<(aHFpg<`f98ce)B_BY`}gB(+))zbyKK8g<8 zjXwM}37R}O{rtId*-;WEc_~G^?P{!uK-X!!$9m*5FYlCcIwaUmii8H6sg0g#B+7p` ze++aI%B8ACPp&suF}>rSr%90LMZDq680~;Yd*8#xTD%WP8<^O!*iD)2&2AWby}n>R zPU+paUUT}$>-9<(Mq`Pok?ZiC3RqDstsgQ^Z0j?lDN*)8`pxbosTJz;vi!hE+03(}1#Wk`9@ zdE771s*I-;7onpO>*Fu3dNN<2FhC;#H_o=&XH)Zr%rKbZ5K#4 z(u*5O4l>2kFQ`PF{y@8K9o2KwQsG6J9z30yORYU-{@Y~v_NlB&6{`v2Ra|HLTO_aW zj-YWs@YSVwzK1agikghxHDq~?7S0uDFb#BD(os|-XA}PZPP7~({W+W=uWT}^1rUlE zD>ZhaSsmxbrYpY;Q#8iBb*y(t3A7^z7d_$v6|yYPZy+^A^$wy&pxqttK6+$s_KXB) zR-NjVGTNLs)8MPxL$sRR`2?I2F*Sb++yxZ~(DT_a>A>SuFo>Cq=iW!hi3m$xGviP% zq%5%=!Czy&&gQAMUkeJeqmbrpB2_f4oSm~o)I^0A`4bbaLf11cY$b{Kj7otp1?~m+ zi?NQAJoS!>0Z{3p!%C_tI53S`w^5_jcCRH4C1s~e8!|M$O8B}#Lzz`7;&>q-0Asi~ zWm2Z6R-`7>(`WQi>VuD9fY$!ob*o%(2AG6`1CmOkakvQ@kQMBI?WMD+OIv?uhw|P5 zX(SknoVEX5h$E;r^nHq~dDk{Lo7X+jYQB}Ft_5W6eLL?IMyLH}rLi!Dx5-70Iz#kP zskLOdIIXJ2TM@BMm9vo5rzUWqeF%jlz$FLbmv}D|S-*`)-ztibLK1VnmV^)PA3~v4 za>@=P2vwTYNm)P1Hl1nK5>B;I{@kOXGqWCt;hTYRoW~j}$gx1Rq%(s{B`>{m+9Ckb zSxG_Cv=4QrxYg4m(oG=l%UbikiuLSRRwZ#Dvm9T&ZfbAQstFWT3Gg8*Kl{!dShXCn zF_`BDyYA9Rf;zg4d_S3J4sikbg*U_*&~b%INmX0f>OT|WEKpY0!q29Bx>+(UHWi-^#NAo-08FH10w(U2$!vOlU2PJGDKB9 z?3@%aZ7m0WYxR;1ge$U~U`d*8O#ktS`>m|>kQ@6Wf2xyU=~pxtnCpM^#)@6>K^bBX zrcjK>w7)PiMbN6#?S+@^;VE1E+A#X^M2v*JX~hlb?KeyXzq%0*T!By(V;4~Tmva+q zNNZo0)8<}$1z<(^IQf`S=4oucep6^t;~RAK*x{4ZqZ+K8(-_r5~vPE)Ne zk_E7AWW$D(mNbJEcdQI3+%#B4Si9mcryFrlKXij0e)n&4jdF{@=qQD${A%uWW<4$doT4`5ruZ;i5ekf+d*(Ra z2LS07g5)p=*fOWjEXB98H=%fqulbnSEsK_5>Z|9vV*Y|v=qRd9IdQv&zz*w;0dC0( z-1)EPTIr?)!QoOsGc$-xBtIJ6Vsch2%f+gk7&`4dAb1a^b|jE``K zIyl#-S+gPp<7{&{4u7K(hf>m^xYHr-dj3*!H!GvY*pBQzprZz@@NpQc-@GKOzl~tY zCGM4wBDubfIdFm(KE1 zZ`WwKkb`lFgx1CASXD1o1HOFL+IqRq2^c^>P*$3MMj@-!fXLR{vpNsnkO%46ik zAtt&_2>-#hb@^K<-grF6*YQBezO{HZ(jh)0+0nTOZ(S z#Oz#n3jnq|`))ENt7cDMz{~fk0oU1=d6*gsL#`suIKy|v-Q{1hSkmn&zm{v$cCvJ4 zgV1i8dW32hhN2V+aA_K7&`>BQR*93pdFd_}5l$fix(wWjy0lXO@t8stW&v|mbT2^g zP%tYv?$9v7K@FW3iF5ZS-c^g|sHGzl1ZM>hD@hY82v>_{HS`9IJ`S@e^C$)=aw(}8 zApbdvYmyVB3JPy1#IuYji^gU*Gj+^VoyOpLBw)C3FLScC{4Og)S8Kq=Y7ltNBY zl3h4_(2OLLQ|jfI!)EX;Zq`W#IYj}GScG^yxy&UpuPkfa5tGE$CMxh*F661xpp7)A zp7Ymae{fmW4vUD4?3pApjV844DAHtPLXTdBBuTUb{cAPkjY#MLy0L^=&(S z_6k_6sctJeWY>5IibOfd56$gxnR^}O#4SP_MHacOfO|}%T(86Szi6BfMe{7-o&nhX zBWxG&Z!E=ir%kJ^%e`e;6+W$1V zs4$bzr4_|bb2vohnX8wSNyhu~OZabRp0@A%=Z*bC`%(u=hV_ zW)d9?%`tsld*W5?knptb&|i$~W!3(DM|nd`lMhEjGjZBL-zBmmRo`F8eckYP8|UUD zotnK8K_dFY*X#+rE&1|_M(LUa4Cb(`XApPkrpq!R#W(L2wKBzLfR1Jl>pQ-m}&jwyTrK)+HNzKpQSoQI2X=08H z?`7#w(3(=^|eo*E=XFHR-dcup8eIv`Jw9brCVd4K3|q%t-nZGv^IaK zX*av@rS@+|R<_XkYhCxU&0nwfY`pOG+Uvy6U+d+W*54Wij%@yRedz3kZ#TYN`~2;u zqSgBQt9M~VSsR5EtsSpu#G6+un#j&y6wR=o&2Wpx^7!GqI-9D8 zTlIH;8E#`_+5BiXJsSU`!{S`^k4~HVFF)?F+H6L;9G=II+;XOo;??EqE|QxwSCfnki8WJwHiULdt-}zOrOlnuRQCWDt*H%2^D-f ze9ro@B_|sVo}xPX`p&n?Jyg|w#>ugA$(j)4U)V)Ipc0?}cop+!@)tBYvE;5$a1u`q zE0aVvrcnuAc`Ch@R707^35slrLjHRJ`TvK}#=|Io0R8tLQy*|VEEQLzV<`*KY7Rn9 z8X?t;YL;AS%KSH`(*s}u-QcnRj)nYR+OeATZB~p6N%{e`|FPIneWW@?%r*aaQ9xhm z(u{Kt{yq{1)>*WjoS*+6A1Tud3jROZv9t%phs^%bj-5z~{##7G^eWTm;;VXI|No>Y zVBTLWMBSTLvtb2Ip_SE>_AE`g@{QjSd$&-6geS3`Z zBGyvP{`yG$QyJZA(Vyq=UsXmQDTKj8Ev`JW-wb&Gp#&YklGzjwaUmWxOK}$r&%`!) zRz?r-4@c%aD_Dr_VKsWb69$|~(@$y=Wb z*xC<&G+nZ6Aa1^Vz0VO@EQw>qOOnf^O+l7iF{*aoZ)5nV{V`ZTzl9uMZm1N?&IetN z<6pS8=c=?Z=+7u*>-hqW=zBL5KZ=8Iop1Es7K4TzKHNT8);>2DjVLb1s0opaNErFw zK2i>u$GsZrujPn{%F+v=XZR}Rd3$(vP{Ka53dMy^T?Mh4O=n1Jd`rE;=Cxy=dK@CZ z^K$&r9{$@Sb)TgV3}R7r)gZLckGqMjnQYwVIWIJfjmFJOM=(r{coky5YD4X*u>3bC z@s`tt0cIIPDtoS|<+e~;Guaj2N zixkd&rqT07cvHB0UjJ@uhaY%vz4YrJG&UTN4Po}ba`E!A9{o8$J2vOW7u2rKJzF#p z=Dn9U{ScEg%@pDjCHDf{T$hysw+fdOfEEj@|QHKCtgY&ymt(3 zX91Ib6vQ)M$q|o;Mi^SmFs*LvQ3fqb(|MVn;T6U{cV~9mQ*di0^Yjr)`cPBKfGEv9 znL@PUU{=^LArv5<#gwFiqioGsKL1Q!J)|Db#UysFmRm{E&U5AAmb_KOJdT54Nae`m zWN6PASALI_5~~n2gjL{HwHregm8Ym{Ie)G*2*$a|5Om8KLC_H?ey))J(F#d5_#%eX zWef&pMXF{J>(Jbu#zSy}w}uGOs;?A}*lZxJDn&5b)hp)u@z_#A%~4x_vwpV?xvRwd zO>dS8@O$?(>P{a@xsP6b=43V$capy;csk1_zUKbc;m2CqWV3l&*j?(p&XV?Iv;L%y zUA%In1jkEA&i)@@%#43BOi{hWugWc*+3y=PQY3%jm8=S-UkgvN$p2^L0yIbraGKZcLLDf2p?4poZL!jMq`2H=Tw08Ig8#g ze8qRwoTPwS{`xq)1@FAdY6vIf?WG=F(U^RveaAKlepVZl5cY|4ecr8JBAytOZ*n}H z_S<{dS_zCDt~}9t$s*Bb=FX_++4ghCEfss7OZD7+t=iz62G z+B?^)a%9^3RtiVzAq>SY-uT*JQaE0C1-S6WA!+E{NM1mdCz8YT*8W`wv}=3TEsS2- z8Yv<}Js$DtpXlooozOknSP8%3^Q(R^jjdU(SMG-9a~O!HKb_IX;-`gsc4(S;;x z$K$|7LC(s&-a4R>+(QSx@6aAQP2GYajI5jo^O9~@oYMNxc1m!DiC#?2T_^;VIY#|D z{nLW3@}Lh}TX#|)ayrkQo7%LQilX*$uouR!m#nUcdh#{F_x!Evn6#^|T0b49FXB(g z((nG1{?zd8nJSTO-}?Nq1nBA>`t>n;r+n|n>&Z}H*MMXS?4)W z=lSSN#G|+CE^i_)YV>`dfWoINZ}jn!86tf6(Y^Y6C&XE|kX^U6ooK?CHk#G=UCRaP z&(zMVF$DSwR>G?fq^g!g^bOPOqGpMD%!Ydg?-)S6+M`!wF$>-O7NcrZPE&P?yrLeQ z?J0z`M`%9!g(AW4@$(vWMbAi!omfxi=}mjS<6&H7KcCCl zXm#D*-ZH&iO3I|PP~|zj#mMfL>Fl(774x8NmAy_X}=E+Jne44kyoB=`#3KK_AABN%#2>NMCzBy3F zC4qGWsNkpJm;w_zV8F?;m=Kuy#i5u2yNIluoGhPd5`_o2)0I$6&=df@UI|FdD0YOv zzAAX3Up9e}s>02VrUUx4>;P({6_Pb1%od)>_D%zye9aDW$_YyZlIWnbB-g|Vpdjd& zSAwOgI#KZ}DKA{Bgjg49(qxCxm|QjJK|cl-Z9C`)e0}bI-Z%5va@50S!Zj~f%pRya z7p_nT{b@@1NNO}gfmpP!hzPpz3Ae06L4@-$FNe$}L6s36#yksQ8(}Fs1J&zLX>aZP zJo^Zs@~7>WM?e$=aS`E(xcK@su#;Xg)PP0W{- zY^^GOJ57Aql{-3JDy2F-hRak$(5<%8B2MWYdg+ykvilRzYrm4O^wKxeu#65qbSnFm zPk0Zje596OYjg)WwUcP$BkNypM;t9C`_%f;E5;GUZphFKwX>SO4 z-P?cb3TK8RXu#gT<;?z0j?y+mh~WzwGODV*p!6kB){Onunf=)X&VnSR18UWUGt826 z`{lrDLk7s3VKRKHJDL8u=}P&|RnXI_<`p2rF@F!fs_F3lS^M9bld4h=S2tg-8B4B0 zWL53=s+*lx$`LT?T=)qwynW2lg}2SBa>Kmw;1eUkO=5@)@Fa#xbyCQoHAQtKsBEAl zTF#BLa_|-3E?U6AclZ)c2=Og}H&TGQ`{$rX&s-dwh|{LBecR)vn@xl?Oe3iHg%gJdbu4X)zsOZ0jhIQd^IOq zX1xKYz91Y;dXsJXrk+eQ+df0G_FrszBx`LP!LDs2_2l~QQ9A^^X81WNvbD;uc0`Yc;l+M3C=d9pXWxDZacZDzrPH$HD6=zA7? zW4Dw$RJPZYePiQNn2CHma=;t^PZFm{riuj(A|Y_Iv; z&MOai;N9-C)Mfi^CzbJbR#f1Uw`W|9&UBQwFRpdDj1HZbZKtaC&&cs#L-C(60Ve4D zA5W97#7`tRZ~8jL%Jc8Yv2AQVAJapn|Gn~5pW#Ra)qlnWF1N4khr9!=hxgoS{Y!JT zJCWyCn&}#$zVfeW(m99oC&YSrfl|sY#me(tILL~q`m#e=-6NJObOHF+JBsu1%+Zz0}$s)QCZvlHL>i*M9*tM1lZnRcDe9MTB3#0WL zot1rBLJ4=YZ(`*W#v*c()EmZGwJvAYG{~cKk1*AXxqWbRpWH7#sGFQFW;cm z-wjT{=3KS{;@!sRJNKa!n8IrhL_yfss+J=cZ*jL6vThu-Snp{##_m6Qa@{UZq8pIb z=RvxwAc&iXIzbo@r7z}}493L$uzJX@KD?_;Xn>RZBzSGiYhZi%{&FyZ$lm!hfx>tB zsOqS}2nTiBoH}po4L6V7o}+FHFW7~;6@Swj*L^4F^q(fpq0UZ_bH!gL;z^JD2DTo( z{`rL417<&SeBC#Uy+TlrcbL4P$Rb=C4myF|b6r~hyR1dhr0O5BBpL5J`&pp5p!m=l zlS@tYd=(QN^y^VrKNkEc<14{_w-O&z0Q7BUx`MT=&mbwZ1NO=@PVo)+;;hjSOswhF9Pj@UWm zSA#F}JSnrJOe>SO%{N zJ~_Nx8kPxK3*($DrgiPTH5E-*CiN0EmvK$OnX!7KafvZ#bw3Aig}pTTxVelUJf7+p zqr74Y57A)dvMqreOmLf z(~Y3Qx&!gL^)?0Iup%Rk_VSopxI)gED zUQnM=0*ELKEtARnFQiC31c$Gtgz^A5f(ROnl%{y|0M%)nwT1X90&qafGywDzFC~l0 zF_)tgTs+xwAkCz`_WGEKeO|SSin;_G?lD<#P%A*-%c*&0wAN(~ys=h;ckt(~wQeu( z1+I1vseW%MK`B@_FynUh<=H&@erKTujaDRJ@(9TlM-(xj;>Jdfi7kK0t*;iC9)= z&WkO!Xj&HCf()FUqXF}>*SB2+dBZCgRS_QyC!d{>{58|Dd8e)g4WfN&CKxA{j}o?d${+;f?4fh`R_awh`A`a zt{1Lio8|hvQ(0qytj_({-zT_Uo!HFH>S(xrJjrlr)>t^JJx2UqC3|P&vv9{VUB>Sd zcJ3^Ca^h^q{Y6%!#P#=93;)=SVxsK{Hh^a6u$>iE^4klc8DALy7CQ7#y-AD!01@fA zxkRsFPXVMZZAnc7>^GZdD~LiB#yj>h5ng_r_iD|$h(4?VZ`gfWQs*_RA1(leyVPNSZe#TQGPY?gzes& z4<{XuR_ks#`>E#kt``fI-@6ua=XC9R{#x_5>6bU8eqIDwy|i)FQrUi^y$1Cw-ll)% z>icQWmgpLvZ`j}b2AC9{K)B6tB_hOV^ zF}-o;?h-UA3s$n9Yb@e)9F5&rn8<{VA1tIe`7tY-ZoW3$5Ibyw4BR(BC~J zFH7)(=TT2)H+8{}t(13P(|Kx?HvRk0-*U)3JEh{xll>> zDJC!Nvgz+K{?M-HbKjhLg4}cVT-ALl=gwT37x-yMtG}J2-+~iG;UMMm_F}|$gn$*T z{uOv({Cr!^oi&P$iCQwCUV4^@X1H53r}uGAs+u*Nf+06Zd&S)yR^5-+CGTkg!bkZw z0bAVop&TG$|9Q(FQl9o~(cQ0B`T4w!LbWzv|Ly$6Zlb9hx|Td(Pbd!LpG3SIlJQLm0ABfgmi;dO!&zST)Z)nx2i}E0 z7T>f$8&$GlMwaDp$D0`yPP~bP*S5_~R}099wjc+F3jA!EQ!*LALT=hB9$@TgHyVtj z%J42C5Cyo^F@bGsfu+HqgDi75*Dzd&|IxgC*FvMSO{?_J8tHJL(#5GGTuewX^7%BP z`wX}&B{lH~b6jNt6HVe~Id^3(oXT=)%Nh~`?r^s6v?6V#?9-J+5@uYJWiL)l_orvS z-kvig-5r^qO=9G*(z4y5TwiKVj9-od$q6%aBhqqX>AO}|<%CY`bo9$v)s_>~1*Fk) zLg`==XsCz-kBA5mi!jEF2{DCln7F=cM8R@NrY;9Xkzjfa5urp$e_v=34^R=U%A>>p zw{gle4P}Gax_;tKY}k!(Ac^N32H_<%97Mz2;t+IXq*|}#E)3;+Egm<$3z|fnGKtce zCKUZM?)QBL?NjI-qb|joX3gVe~?!lZf%ZCQ*{hMXLrmvE@d}b~4iXPNnlgt2>`@V*p--2NW^rC%%x98GeHj<+=zO zRYp3E5HHe{?=_%|5U>f@KA5{fSz39Ew)9~GNa3Kex@;FO-sgF)(o)Py04jscHoo>D zW(k1SEJU;2T}|vxRs{YPb`b?qShPSeLkbZFhK)d)YU}du>9kJ;$i?oJhv}5ys>Mw0 z(!*60CKxJ$K3BOxu`toYyk|g8Zqg!(?gIU#Xh#f{y;ASOu z%Y9vY*cL+uY8nnNC|ps4?giV@tLsfbQwd64w*MuiDzEy0=55n`>FAnU#*Ot_R36+U zSA@Z(`W7-;jKaH(#Vfwo)rmt~zv9aoC}p0a0z+s4@C!u?qGk95UTK2jcdNcwy)H?* z8b=0Q#PBp8pYYXOS3$xS5riUCLgc2Let<#YhnlFJ0WsP@QM%-%?)P z6sIU)G5{0}&;d5kr4X6hs)%lz@&KGdC~ga6nH%ZK!W2xq!{=4O+yVX4H`el}`Y~VI zPJH4)y=kdCS|%u#y%`JnEjl6Ns zXfPP9w>x?I=p_SG^19=gQ^#d~h)RW*PL0>Qbx3Z5L9M}wvD5XFk%&3Od{J|3W*yzE z@8qk(lOG~2(R_o0r*$z8DB!CT)|>yl4z~R@&#l~HdlNAKb^4dWU#)ZdPmTEBQleZVVUV<-{^Nk6 zLi*2nj&h`LEhs?#_&dUa8gk=KJ~@-QZ8MhqH!0=D8;e0$}EMamqu z(h`j^Jpu&|_1+mffAX@GMEJ~yWhELBu$G#uxAL|U&cOa&^AA5`rfaJw9Gs8se#$gb zbrG&ZZ;Rm6)9Yd!c3-w6iPMf{oUGXzJZ%2WRt{3S{(S zVv_2lof)*|6VbqTzcYqq?T3Js6gP&DjH0x};M>fnvRQR(`BveWdGyk?d!F!C?^|c6 zo)Jzo9OHOBlO71Wd%#rPnoTTPt`fM?l(Q-eF1#!0dL`5>5D?|r8DeFlh`F0_EOE4x zQkz;+7b|DTOh`~Yzp9;?^V!|y`Mw7{K^9_u0?M|%_Id|$;<8F&eiOd& zmi&qS`MC6_=(%3CLjls9BTs=Nn_w>pMuPy4=O%w=)BkD7+Z+Vop?nztkT1@rZL@$42<1i>1L3v`c64=vPLHfQ6VN_m|_memJVI1L!s5(@lv`6z(vm99RJw?G{P z5hm0~wDFBfsbBQP51AjV6b97;+Pk|Be{}w|N2!2hF#88jdpZy0;uJYroN!EK&QROm z0>rLjC@1QQsr^(KX9||YS@J>oD~^4@6h2t=ar07!uMI&TL3vA9{q#YzkeS9<@8@dO z46MC%V)44RKK?j8dw+OkL4auQqH^B2<@)rind~g>9^G3kb6OT6=;!uuv7`gHEVuCb zm0r){TrU7BTb$SjuSqeKhcoh=luuHv>n^RR>Z!6_;k^e#{a&g}%#>~Yc3aDb^OAMz zb@9Ba@&*i%?owTk;$^UOzo7^1Qh||7-kCbXHEqoFUgi0dTL~6nt^QA5-`rKBuKO!{ z(9?miZ0&ISLG|%ox79yx=N1~anrAl!?~fE31bHF0Z=-p^G@$9;Q_$3DsggX1=bqqFbgqh7OjP1=# z>#cT2x0+-6%Fn7w0GJ&riWKhOIje9tbMoAWr%BYf@b-hm_iMkCBV996+ZkUrBrLQb zIk#z?N!?|Y^#1AntMU{3iqq4q)~`QWmcn!FIJD0zKU>NUr6 z7bzPP>XiC-i=WTyUu3QP+s>$~wqMUb@!?Om=}$Dx^2b_50`Jn;}etyLd$`Z6vKlIb1~WLjcuVe&XFl zgIVD0cfAfB_y~5E^k~XT0jU_Waks&!hO*R${HAQ&^o0xcy#@~*>obiz_AE0#n^4C* zRpTJtMF3X?tTEWW_sX*HTc+L7lNPS& zms$I4@x|9x$GfG=X)E{LD?0x!M|Z&XhV}gR3JT`2`&NSIV{e@n-zEVnz#xg_SIx97 zus=EH1x)?AWNq?`j3s4X>`CE+KkgtpcyH8^;g24)AmWl`J7`l1!FM$G_>6Z~Qd>*z z;U(KnMFgWVvDLKQj`3})ro45&cjbklN3}RgQ8Z`8ZlTzUV(kt9*XD+xND(j7J8Ba& z)>@qhkD{-AJG;9IWt|&kp8utN;Jjv?r|{$A&S_M>!_4bttrB44uf-}y zek<`%mo6@l&!8M!1V8|(X>)&YaLpXkF>Egcl+oXMoOOJYNSGv`)3;rDW(Ulz+eOoH z(rm>yxN2z?&{|iRm>+swoW1nm8)R;1Ob!w^EC`{5?teBepDO0-V&8qb_T$b~>-VRA zp24bccXnt>Q>(YEd>d}=N`AG;{Yccxx1sxWp4|FyJJU_{VdKZ0_l+IDowl1V`;?OU zXvMd$;?L>Ns$xbC{LUnDn!8^<8?F<1(#ri_tZe8_o+F?~ zl5)0r+JdF1zP&n`zqH=v#o|yC_1Y&Q$Y#HjZ^XH&1s#tGLdR{+%icPk`L3Ys)UhvU zHK& zYnM%}&4BnBlX;7LeKO{@^PVw4!;#GQYeUn6GG6Y_0H=wz!I^6844=?U`A8--m4Qy= z$X*?A=^6Pu%>*c%<6z|1$tFINBlah?;{aFY0+Ij>NWm&ssrbuKFx{pmn#j}cJ z?#Vu${UfM9Le@o%TB6vncNTyG@D0mdF^aTLJ*qiQd62eaioEWkOsUZprNaa3zhx=t z&V!@r%QV;Z$&|)NEY16XWO2@jaJgJU^tJ=e7|TOj8)x?g7!bPSJ9*T$~iwxA5V0qfk9Q^|GP;hI5 zBVC#zo+2HZ$Twh9?ar8a1RGfaI*nCU1#LxnRfP{elhhc6orx$|1Qorqg!U8}8W=iq z3&KYHTqa7C_ZIBFOQr~^2e&XqT&A2!s8etevrBb2?urZ5v2ZX6AS90zeloOp&j(V) zrE=bSJcv*H4tc~`l__%Z4E*6vXw7N(=KdYg{dsSLj4qoZC-{25UM=xB9oC(P#Hw25 zje6>GEVFIRhC;l5<{?Y_=;fc5=1kfoRG2BO4Ypi2IgmIYZ!p>pf!l(-iKonNoenb+ zTbW9%ja&A9$TL&1L+17Ec|2Va5DY1|yOt#Ys6CoxCV-p+gs&)vV(kU=?9V|)n=vL2 z?GQ%+2#NP~1S_U4$cP5y8$qd9lgQV`xX zyYRKG^=-&jQuQj%(n@IR$kN%t5Kvp=WaELz62G{gHm?RrR4a=MKHQcj&{+A(>X) zC+E5^E9$z3=@dwsv!{OLJ&sbNG(th??fe z?&j$G&8vPibF^FHTw3BITM~A(B-XU7>u%X_zh%>p7Or+{vP)}9WUFE@ORH(!(cQZ1 zerv{$R-Sg7z@;ravMqPV|8KO#55y`z#fZ)+Ro7GMQKvL^o}$*C(msDm_ra<8KTpwg zP8+zMHi|lJvhy^(_O$tbX^a1#+TzUrRc&!k!xZZvctBTSE*`Qm#T82iST)L)^H8&r z(bzau-FeuM-dnxZR5x8!Zj;V2UE629dd0f)-1@GO73N~y!2Nwj*ZNG~^<6&I$B5Sb z=S=<=I`w}#lPi+UJ~?HC``!P3WBr%J?!SqG|D>1xB?|t>Om1$Y^N*SQpS6;?Y}0=i z1+Nc>(5$q7tCf`0tp2wf>jw`AdH45B?&FW>3uu*+|A=1tpGxd*&NU1~Z+F_onR+r@ zZgKO`vj*-{m3mUe?>&lINt@xU7r!A+_8eQQBlln-yJA!(6p3B=C+C^0#e`t_!n($^ z!>=^=(jR_t|0xFy2Imp1{yYa_j!0M;M4Jd?`}_ilC)xxV013L&%T>wpd>*7E=cVm| zjV75?vNv+}Nrr)F_!ew0Q`~-xoT$0HDE*b=b z3EGHJxg-hIs@}n+`HfNKXZjiRbbaA*`8z3@d;`h0$bSTC6}3XzIPFsz0wM7z!p#y|s1mA8 ziEQh*@t)B153Hp)etdT7CV|u-d$edh{DsH7 zJ=<8w9B4^m52$y(vt3O^nm&5CL`2+Cl3PabDV7(0e7ebObo|V|g;vx`-t1m_r5UL@ z^(Ew$O~IG3(6!<9z|Sml+3^nesukJNK>VuLD+uzyJ1NXHw!3COuII zJxu!(y}s+a{QdX;)3p-A-=x6jk-LE)q~fOc>+1>EvR~hhFN<09U0Qcy_w;1>hYMd{ zv_6@ce$#nzX6D0x)k^*gz5c(6UXT2Cy6XC|goRgE+z<`<9#m+Dyna?2lHScasxhkZS5y@~_!RFSWtqQXJa<4RfbiGr^#5G@(%JbG ze)yd7>}Su*<(c8x%IXc-qP?2Nt7eZBcxCv}U>Ho(oY{ld9 zl7@!ezebY&eq5RbW&0MxVMdd(GH;)1`xX98)$Pr{RlyEb2t6g6K=$*2DNfI_dmBt^ z94V1;{RL{C3pXVCr@Xp&g!Nn12oUFex58FlFfV@_9akUcGcmTL^TeZnno3SS5hUZW zf%NTS7CDKO+{SDW^qs?PahY2xG>I=?eX^7W4dLPWRot%=KV9p8;HS4|cVDwSTfppZErMHTroL6+!}wp9g<$k8V!C8(4DUY8&VsEbnb{w*e2yXqm;8HV?qczzf^wm}=lw|3;T?rak zBcGrTk(p;{o)oXZZ#Ori>zRG(NyB0zmSdCtkh+iU3Z(p7Y#Krc53D!xio~YJYdfN= zN0Ojw9*ek33ic)U^!{<5DM|{zkBzg^ypO-o!8X}UJs`p9(yD}g$swgiiR;|`>T|V& z0Tzg1PTKf#s~cj&i~m`0Iii{WXB&j*aF3R!Ntu<0_a37hTYgDBdK!-Tt@Io-W;HoL zA4hV&uHAdgaSM&FncT(Q5Zm6(^@@{wGX))F*<@ApAmohfdUQvfdfZ^lpN+Xg2cvFRcq#1g(%qACh@ar8KZu$0)7N-3n zBUpbir9?k{AUX9duU!1x9F8V=a;T}e~GwigZvvS?HA zs+3!pkKWldwo3c$Lnx_zNmzGM*AA3%k)$e3-dg!q~pELJE(-ZTdkY+ojSB7r8h(JP|gRtFn z4u8^|pCpzN#lRT52m41Ymetg`9I zz3XjZ7yoH0@f=mqv80=A7Baj@&Y~kayIP<=!pd?#p3$x3U!B&ue5%UR(jgl* z2a=*7^ejDRU&B*$LwVC*rjpz%2d*cFkxP<#GwH-Ij9cu5Tug)EOumiZk3BZ~3yo}k zHA2@;voNFO<_%{>5bc=fxxJBm!|2zMEC)EC%BZ|0)nUo9zF47cd}ynCN4fLEJyqOp zdvr@ZY|XqIT36WAb4W;|K%lOoe{>{UVG8W!VW*8R=}y*r#8nHOf2u(mj8v%9XDrO| z{!J%mecUT^{(!$U!hMoyA!w%SBA4>)*&?O%SDq@#ya{VL6JYL8U+z^LGCFmb)hu0~ zG)?C%to?_nB*t4f&Nf*uSX4-(zo7ZMJw3BO1f|i#l;ZpND(1@JH!!o~4OqW! z{Og_Uqket&@8)Kkud)uK`9ciEmi)1JO{E;=wUXvJ`s0j2n}5KngGa^t!gJi*euKAT z_moQ`)y_eiZkC?*xUuKZhqlAyYp3j8pBPKkIq{}s#5<$j|8--_mV%~R4(WY%Y zw6nPSVld-UW)KhC-`=2hr6JZGVVN2GZ7gPS>AUX-q&1m%hG~CkyARy(!#{nmKV%wT zGfx#tbc)ZZ33$IQ>gRpTQwizw+NS7777^}0;^|2~3u2dqS-Z4 zEnMyy2$;I%^OhL+#c2Xp@>ZzD5?JyGUXJ{AwwqJ$BZpUgN(O+bJ&$QIkZwy^C+1T3mE_E3ta?X8DOmdYyJUZ+Pd7bQp z92tr-G+=zKTyiw*gg`mf5{cO!>lv0rXiIY2H+ttp%E~sTQtswUv~1eAV@xZY$e10~ z;#<~W=dkG7yk8Tu?DpNq+ z`>{qm|L@dpvksmo6fV$a(30p5F8`F;#iU z;Y!r;Esz0oHQGlPq55(;*;EbRi>;u;e!3Y$dkNKdHB;^3a>i;KD3OLcZxUxB&pvE~elR$Zmoc4Z^-1enEJ}Sb^iDsqL_oH! zhqQuq6beFA5~OCWkMiM>&!t!wr7=I=%`XuoT-3Kv=}ga4ta>G=z+e;N_ryOu3s{ia zIV05BGocB$jh=kUcSRg3dp)9tXcnpTK{eOk^dW;j7fWu2B?oemqFD@|SNaSGDQd9( zH{JaxLqLz}1$i^kV`&t3F5OV3ZNjsoOCWQpdvTSXHUn~yqWvbI-}E(ZYZwI^pt{cN zyqut6&qmpEA#;xUa{heXR>%y>N3RfKo#*lFjL#<`Zd(wKQ-NJ=)Jw)>RGMM9z>uI% z#~(I!iQDu3uA0t0`sGn;;tbVc&&IX;5Mu=FZ$}v*+crWv3z8tm-m=B|8cA{^Z4-&M z3729e$z}@5wK-}Eg~d;Aw4p>>o2l#keQ#<*#Fj=46CQc@CwJ_YLS-=6mZf`D-)7$y zAxCRp+~w4H)!1kmMyNri+{;zy-z-iEvAx-ssO0BWxwv?8@?rA1HDqJweHkJ@f4=9z`QLw@m+18Lx%Lc1^$Z^Es!Qv+g5Q7TZ7sF8=lc0tI&k4u zQSIfZ3j-@QOe{S>JAL8a+Y9|Dt$(fRm;v^Rxwz+lJQx2(^o*Fwt1Q!#|C0LsJs1C7 z)j9AF36^u@%*$s_N)#3`!aV;o|BQBBIg@mGPvD;ttbbo4{{#H+Z)@a#i*_mO0RJ)< z{}1f||DOgw&~oX|@{RtCcKt;s`cHr#{7eo{?hSB!Jz387HG5GJ8lLo`G9uydi+$0l zf6&!STKaceR9G^{^O*$P0uN8rx*I z$&OJVbJlR!3q?17y-o;c^SlMYX9qk)0dEd_@Aj50(?iyDM?2J+EP3OBp}M?D%xsaH zTX-#+4GA!*R{vb4Lae^8i*5fuMz~$^ibSA`+>(`ayZ)1Oq9F?#oYms@n+E6u8@8PfS$^Sbcf|T%9bHyb zCW1|#p9A111J^+D>a9t>c$cP)>bM08ApygMOo=W*8HZp|@>(0Sf^sk+q+%hW?dYx0Co$1??8#3Z zCeen&+Ea?T2)9xf0?lZA_yB_di}zEYA@K=gA$l$iqc=zNJG&QqY%^b~89|M>A2-z9z-wiS(&`NVo$ zPqt869+S`epc~8&yG;hDy_p7c;+nL>o|hXRi!(60DVZ(9{!3 zYr*h^N>0@&hKZ^k^^|Hp4^2VSo}75)Ubt(^W;zTKCnY#NZyrjGD^TZ+$lbM@K%xUf zWN_RQ3LZ8nF!1AB`mtIw&xkO#oR#QNZc*X=KILv*n4kzDt(ss#tJd?0h%7H^m{paRqNsZ8co>ae6j)f=nw$k_9XNtgB!=4O&H{B~1oP=4wc z5(;?Z)vA59(nq}w+S0o;XeuXjg4uQ>z8Cgp4_o_XQS~Bv3F~-%D$&IX1C=LY&<%Y^ zQp{Y!qXb{k0I|&hlYD&w>yIp#tU6V=W|4&`T!hjXlcF8iAfkB|k__G~xLq4JZ?Tv` z7^qimr1}_t;0mx0W7T(v0Q6%9!Dm{OQJ~uv66eVCkv}x3picK$Y1jZC^f?MZ9uI5J z&i0tlSLa=}?BnL)BM8MGEi|Ntwrkt3=&U6)RK% zTpOAVTAkM8f-raX{wRBWodedwIK$B^iX;mgqt9mkn)ZG2VbvB8LI5aoM63ox^k1FF zQt<_%(YidyKpaQFBG1Std7ySKfU$SGl=x#B@C)d*f1pX8c2GvGiSRL2ug?oQ)}V}o z(d)=E^vL6SP^DsHm;o&>NbWt#|dy!>SkAyq*H+IKmU$Wo8P8zruwAhB3)W&>iueDH1#zy}-l z5r|fP0|C>o+z%|oP$O6kNFeyhh_v8`{jN({Az~;m)43aHXIv_!z40yOe35XUx^0tf%A{YRLAZ@t6M{BCg z^ADa{9tVA4XoN@EAi_dr7}IV9R6cVOOQLQ+_xVCWa0NvAa;Fy?fbg^R1klGKE!TOf zzG}yqz%lu@<0N&P!iDzCYdaVl*C$CAIYjxOUAuft-0};eqFteCX^v%lZ&3gTz!>^? zC-47BQk`IGP*(mh^w3XP(dDUOdYosPwneGoV-LEiEzxRIkkTqz9N@y+;bUWtLQm8; zc)h%2I;!=h-fQKJupFZkS&zRqG!jvv7rU)aNAX1u1g{RY0XN1EJ%pPi?^l-XH0jFY zcb^w%9_dP*Xk2xx{pF)t3!s;JqP_^cCPfv)Lnim5CP|Z0%8Q9X$1AL2YX%QI)s_41 zB)KTJHtbuwDRzExThRor4yFMWua;z*#SQ+hb9w>J)LljjdX@350qCtcv}DcR&YNf@ z&PF*+TlQ&Ro>qr@gwIti1YH}`4ApUcrsAjY^LDT_gv0tKX?vDxDf4da{=;!00{Y{Y zsx@ytr;(b>02GXQp>$mV=fKfhOw7$WkR1Y^oi34YkMbKxxH}zXTp8j+Q#!)IzHbYmv!NTWFyAZu zF}HRB_WZL$!fqN-E>c=Ek*_Dlk4iSn<&vCLPR``9K;h&{>FpG>%_3tlSZ10rsj2vQ zC5Xl&-NlUSO@)ECAXN^wX9Tx7FKD10PQ`808;7RaDpBA*3>ECFD($DQwUAV%E-oeu zQxr_pE2*xe%A(FN(0V)}69H8vC0I$x{EE`^+3SrZ`@9wxKX|q83LU2^g*K#b8-Rm1 zwx%$r({|j;`%VWb(n3lzAyv$>;Ozf}3*Y=XEsvL{$K&fsa4XYxIy%SEB>1~r;v=T= z>^HE8yZgZi@r4-1aKcL?R&W_uT_)JfCB9(S)-pg-F$8nryNumh65&Z2QIA$GAIV2^ z4@f$Rci9A#7-GtsywQ80$Iale6a=rHaj2@|58T$RYa@Z-U zG@MXe+y(Q0PILzH3ye~h&m&pwp6djt=qrTHh4z?K$7l%I2~0y zSe5=gEmK;j=3k7FrDlp^w|o=L;YC;JsBypQQQxvm8rWYIqDaH}F*j!2-B^D(WhEsD zJ{1Sca?=24d0Y7jtz4oQgc#TZ!kwdB7)`5fmM9W6xLs@vBHbew+Q2-;-x(i6+x!@h z)009=b`V!fnym5V6H9W@obqObyNiZf$$?nRihWfMaw*G29n@D}k9z9yP75}b1BD+8 zB8igZ9h_B333W$@fvJ~-I%yg##GmGYSnf&_V{jvmhhcLloLJ*E7_8#?E>X%vj`*7@ z7~IiRHh|_Tpd*=QFC9UNS%)J5;~ey4P9up1ey0Q7K7<7#G@&X869gUHq10)9tVhi2 z{)%5fLlfx0qP+OKFM=8bz&Y*x80o5ck)<#fohpN{OyFc83=3oZUt(-?+bTjJXDRwF zQ(2z|*|gU@QFtM^2X={a)0v7}E^v4`0WGPi1%Qi};TQ%uzdGDZwpd?^-o-?9X~*6E zPMY;smbHZI3G;27%S+SXh3CY9T-<75z}Ipgo6o`Jazz|89IO)Wx46BKB{_5ggSIp+ zWZVVT(IQs^U{L(wz^9r1FB6_t7xe)61Q~AC<>Ih(r8Xo{!A@a|;T+M%d^T*r#(1s8 zGhgmZpIENAeSVU0#N0ZGyZ%? z%^{^ed%X)MY30kqrsK909=z@);e%glhm^3|RLM=6%3hoqu|0d%LTT>k(!-O7Da|Ft z8tKGq;Kl^pt|Z)9Ax@RMDpd@pvV$!WT`3Y2`Q1fT@xpB;I74%AF(=9E<>C7g!FzDq z&4ed5@87m5DyWRR3c3XiZ|kM`An!vwGw|l#VQfL8k)scgGZ+9}9hNjZce^h%d6JlEea_DSOje6C!1GPY;C}~|) z*>(l0hulU|`nPc~oTw{b)8&fpqzoNR6I^=;QMeqe814~bwJWYCNv>OPZEZQIpX!bZjXH}>8$s;Pfb*PWSZGoj7UrG_FM4M;~}CWIokP%X58 zfPe@Q6;V-=Pz8jbpnwPg0TEGAQ4keF6_vjRtY9H1D57F)2#Dllowe3EYwx@F9{1dP z#~t^MalSD|zK~=vne+X<@ACk7It&`^E-&cs`STP_XMr{>w6O?H=XsOJpq^wMX8RRq z-eU?#m1292c(5=k4D7>-24fN3n7zsv!AjSZ**&ObWQ-llN>hlI2DLuJcUN;f9g7i# z=)2ufG|bLWM>^_}8%miceBVOX7gBXF#aA9tqo%@Ewpd5}ad0ShQ%69#5;x~{#wNU= ztR~{gyn8o_y)93>DSL!3>&0?zUAGh3Ic=(cA8Y+Q|CzI))jrGO+*S3NPR^Xv=U+2n zTcD_&jh7>%C*C4jdugU@cS8YcX#WAqE@$UJ)O{7qfq)9nS1!yS3RLM^BBKh_%1`oT z?gy>h+G`hSY5hFi&T|!buoiXWysQ5sdne@`7td2MR-3nT!Jm@T&$hNu%!F(7g`2ld z9NV-*ne4p$lTjb--N0)#MD7@m3pLmJ56(SJ;gO3g#+vcvOM3#Qss-njKquz%-gr5Hz}8xJ$_WD*Kl{hN^|u1JH59y9cpWO z$0d5>z86f^hrSJ{H1e;UNKKjuUYua+yo+#o7a964`p~uFGUb=w#NR$s9@LWNyb~{_Dwt#YvvdhodeZ zibFpfKlGur@JLpdR8BQ^Of|ipy0AFatn=}*%g2_` zkJk=;Y^(g(-tqC~>yI6a9|by}x?Dc>gnsHf^r^q{)4h&Q1Ft_lSo|c^`8?$E`Elsy zr-wd2ulzjH@%iQJ hi*%;nxJ-|SPQN=eJy|(D)iM3)_4M@Ov{>iMH1rI?b5zGRDE~4 z{e9)=cNfWbME3{H^#?udhez5Euc{y3w|}f1{jpy1gQ5G=*Y&4=*w4VUpPQiCcB_Chqo3{OC-AWQL{tE6MfO?yz6UX}?mce(k^gD|PhO zA;~Yc?kv}JHY02{D{VHXYBu-wZ2stMfn=7aJ9pG|t~hM&c-mZP)m-`Qxr))bO355w zcfLl~>59$#s>pe@ug(o&q|__(O}A+mbV=v6em{8R-SP##miAkg^sgBw1hfOiXuJP1 z<8;rnT=pMzfBv3v%H%ds6tQbblK8%0hh6`6zIsiILCaXDtl^MLre$OXsKTBV4pwi% zKz2O|nD8!q}B(M+Np(Kc}4i`dsbkFmtFp^B z(L6nrootV)^y_=UP4J7wM@>r%UuhjTf2RKYn#c2O{iKENxea^zo6Q!l=4{_0I;>Ie zx%_{?Z6&7N2HOc3o#x~mW)C|}X`HHN+WFd*0J>R}%4@UJAIX&@O469CGWrRiDb&Ok zRqf{hc%GZ5{k`^j7ke^IeJr99f$>FJ9iV zMp$))lT*gpzh|7?9FsQ*Pxz4$zUKPMFV+Bzzh|6A^p*2D&xz(yJyEo=s9gvDC7^>(YMj1w}|XWrKq2gZFk6|3_!wA$<{xr=+^ zA8=d6DzEE;XB)I4F^wDSEG2PMe$|T)LF%`xK#$Hvyt3Yf{V91Vr-(1PRY-#d7;Q~&ee!jF&6uXnjB?MYF zso~EpZfzkLucZhun!4wo46ao;_yecOVs#C=`C+X4gA-M3u*MC1n*Y)!wzN2Q$FkK| z_9TPXEpym}in**U$)FxMWWc6AAW)xv`AffOCGU;=*ByhQCO`$eG1y*^ZFABB_zCf@ z40Hu0TK#2}ZDb;=DQvzvzr@???!qg_%0`v#eX#gVOjC+nawoCYvcsi_9gmX+8|a>d5nM~O{i)gf*i=Ui zYKt#dE~eKkl`ztEAsW2Z*0fv`?nm3BP#PBb+XF9c31vN9T7C-QC^+UFUC-x0fS&x$ z+3a@`1i?ycRoh)eZaPliZy7mVT52i;a0yoV72+uMR*@z#kOwYvvQQ90r&oLup2?p? z)Sn3ySht1jxuju$yj*|0V~f9+ zqkJvz@SFSc3nuU>WlyFbWci!7tIw`O?;9w6e`jgDe_}et8K$b9!v0D+a+Jd6K=y>zkK5~;J1REVY+ydu*^aJCN6M_ z_|!SXTx+n!E@KVb9735j#juea3hy>;Ib>XyxF!3U#tK@>_WbZ1T)MFd|I zptmfNWFlY#)%6e+E$M`GcSVqGQ+kcOsj?x0F_aA(AkoL(ZiEc6Yw!2liLG!P3w_mg zVXt0!{uMb2`)-ekJ7yE?{@n43M9*&D{hA+?yZ{JuH5U*#s9YNH&+o!3=e*g0UpJX! zk&jwsl4Y(X0=Uys*S%DUlN+8N*H0rms|yTk!Wk9e2-L^+uxS{KJ=tHQ(dT7rV=-Uo z=QlFs^48s^OWh+bk_LD{KO5w7t7!vHPmTx1Vb-6Y%GIa4ch`GZ<%WOws~vpO%l2?5 z!Kl@4-Rh5d?iiOH`7xj7b>rvJwiiNTH}e3jO3KXTbDeqAyX8-ZI<5*ZV5vfBlBQ&` z)73%mX&RZ_%2dPVU5Zw z%s%e}qRFf*rI%wo$)7vs>eDRq70YARXo{)3lboEKY2*V>S2)%QayL(gJ8v^>5oRCa zwY&3G`%*exoBLaBDBa4@f$lca$MlH^<5p843TLs4$ z5u12UXWVuZ+t?e80Np5DC@j}nZ)V5`Jq4==8PG#L;G~gsKj>u{wHIQd!DcA&@dh3u zcaRO33%T>rTn*`UQm|*Elxg$`#0oi|t$<`fkb%2TCIaLja&i89%yQr@K5NW{XjvvV zhXJ^mK%^2bPDOLgtitU&POnw^cV(0%8@O>50>uh$&+#B1)7vZ~4M*fzKvWTk73>M- zuOf2RY9g31=1#w>i4i}w3VI26ruRfM;iNy{eTOj3Ao>LmyMHOvOKMXkWb}X<5W-fN z5I`Yp>9s}0FEjh2{h=PFye?U8NQ`<%mcs~gJaJ%-x(p~VI`DNx`6Yed7K$m;9v!ao z))?4b4?RJ%_s^_5%OjoxFpWLzeuv$VFg=e9)jriR7Zc7#%l5)@TsC0M*z^4duBbG9-iV%%AkozxTg z@v%WG7_#*M@d1CgbZz`ZM9g90`OG7lZL!H>1$&XvN=hM#QYx8DRDOcTGEbxo;}6^| zn4V;+TkA=r2@nHSR=<}=0ib5-`65Jj$gD_CDfB(D*Az-dh)cY(7B>0%m!`jFpV(i< zc^Hnau-~8tW<3@|pE*SbyRkfg_@opMBV7H%uK7ivBOj2lhvSEGLA}%pG0HC!?|)5x zn(tgAl5ZD46#^)qthZ8PdPtM8AyLYp5N^fYfyfA2zDFTNjB@KMUQa0LIwNyZd@7ZK zCbiP0;#ZKr!Bl0RW=>)~CMucWVsKMwm*IsuVdg3)B>N4sQgoe3=CSq)Wl&QLtcV;>aCn zP68i0oQwNRN(=TwH;!Q|gjn4z#06%QBLzDvlsjL&TRu{LovGZ0!?_*r8(ahgCsm9w zf=caFOKF7~8GEZ3JMx6aLC0v!v+E@kqKh#*dLOV?ye@{vS1E7W(33exAxN0yGKO3| z6VDUw;EJ_=_RExt3AdtfFZas~GKr5eQDJ~wHyh$Hj-#;f_pra~|u&U5xcd|{d10O;sCmkRmUL8pTHCDrRoZ~2d8q5tIO00<_P@e+{@wtw5b`PR|zdzMUb ztjQpa9s15prcV%O$=KU&Bnydygh*_Sova7B;8nD2u8gM#|KhWE#JmGOmNmpdoE#M* zJObnfn6eLGxjsHB8IYrol$|@iaVZd*DGoXn4KHP*PC0LvdfD<$Dj71MS|Ofr7L(&F z%MaoeQWAP8vNh4Nn(&Q0L0L|7+_~&aS8&ACD2){ogi-S}1Tu$*MDkA2D^1zJNmw4M zCVvt}Ef)d>l#*HDG1JE#*lqGwjsfq4$0W_DUL_g(JcWTfh$BmGG6=4oMfLDg#}HXv z7))jeKC&Wh1gJaxl#l0#-OXStOU4|&39<4tkd2R9P;xB%DtnnG1_U#X=L+n1_Yr-8 zHU|rPb#d%^B?~DYAdH7!Ddm+>%788KrLUkp86yqsoP_!<+i;i8V1CyYg_7~{z8Ll! zo8k}Zmpjo;WQ+$T*@+;2uwYuu&N9d z(v8}21+b8!yjY+dYl%@aV9Uns6G^!QB_Dq)uy}YX8#tZbpux(QNeArN_*4-_ju|Zh z?&+M+St&#ti7+-~(2tK^ia{B(aXM`Pl}R%eJ9jH;_F-M67j3u1Fh5#qIxdER zmY$W78E97u`f4$nCPJ^O=$=hoZu|(u`}Zo64bvZ$q+(Gjz>3sv4HX#0URc%rKBm1|RsLFVp-c6auWZC6pL)@iqGwT47G2B~(YZb`oTgq~p z4Amr0-PHLS`b-^rtnFmca=T87k_b@YD@ApJlXgl+AF-+T@uEO55aqmRG#J|r%J8*P z!zuazihD(>DMTAKM_cgqPh3)|%m-e4Rgm6zQV%%)?vVmY4Sge{Wt1?9V+QJcP?@m~ zycA)x0#;|BOnJiKOKBRxV9-}psY_as3@&2`B``Sn$X2;|$6WC6FMTUrzXw2z3VYD( z-AbD+XW{G&Lo{a?H)a&3*42s-<&Acs=oAt#q_>tB%kn!nw7mWlobYY=nOE@hq8Cun zi{7v5M62py4)Fbo0|sT)`U>tjPr9&Uc*xRdWY7X<39H^+we-sV^-EES5<6wVs#kA9 zhV>aw;v&pT1J-DXz+MAVc)Gor?dxx=M(IAU2D((#$8AL@lKOXrrGke)v_;^w(!?L& zeaN!0RU%@C$RK?5zOTK<)j?U8G3E8j*h38R~D5|-R zH&o3x-kxt7oxdQNZ`S>N+4Xlz*l%gT*;e(t{r2yhqrW>OzXiGrU9Jl~VGDg}3;k6K z_iir?j4nKoEC_Y~47vV!9QNmF+MnlDe@1Tqc_|tF^IF>A)Lnezx;P%T_%3a6vTAYa z_Ts0}#c9c+SXc7RRq`WDGLt5mt&+^&mMn})fUg@w2p21-Loa2F(X!;UT{6^t-q3SZ zEJJ%recpN$XsikHb#&>vN_v^^g!ggFkdBNce(%_6 zNk)zP5gqq({|~

    rT03Y6MLAHwK&!?JW=Z7w1Z~iN3w|F&-zXU{hF@%SCWD$AdpsIDgQ}4 zObSFe`v1dy_D@>7D%F&#qx$yrU(I;KRQ5%}_h$Lqb43P6N7MDHczN9%x5*Ug*HoZgEs;Av-pcfDRx zfh2?)sIzZx4a-Rd`1iB~MZ=e__pzH8X%Uq$IpO87XIC|2acdJT6sp9))$@g&@)c1ovhDSwWv3806dXyu^+P9ZsF$TiwJGeq$2bgx zpx6nZ=g1%LS;+KKuRVe3f4Pnit=;t(`mXhNS8FD67CAfPC~T)+=;z=dNO>2Hs*r*F zrC!Y2>1OJ`iibka%@(3SLpe^mnP?>=7yEkjK=n*rW-3JEP7|6|`XVSisY8)tsb*jy(4G_$6h-Yw0$c48ge8(%vqR z_}90GKxpYQp1@Kn=v=3)C-$^0Tify7^`4W(6>WOutb!3*&&q^a7Tk&PgMkJK7cncZ%Lgqo{O?ih& zl3L~`%RzH`)Z#t;oN3&f3!KR}y5!ks)LC~JzmN{fVn%QlHth)ur)98ueMmB+;fO8W z(|JByf697iW@Jdt)+0=Q#A`;N{5xE1PXMxi3vM9&gg1O4`O` zV?MDCfmSt$K1(Z({`RnBlg2A{3~a1=TD?nSeRIWFepYRRM#sH3NZY0E7>o0u;_~ z2bHNeCKON2Tr4vcX2mXeo?0xrQ+8go9zqEL{83ICMxQ53-bhwZl*n`V9NibQ+2A#j z7hc{FKgnxU*z-wd#R@jj zj9;R!ynWlZ6|a9ZZsNr$(-O{Xe=bZ;w&Ji*s5g3E3V3U0Zch_%PYHUO(ZExtD=9u^ zRFX@bc*-$Y{N-9xkU5hxVfmRLob7e3+05JU$)W*I>MUqy7G&^cPnRut2K^PyHV*gS z``Zx0#{unH)*7sprAb zzIEv_QmdA4giUcPRPTFQ0b;7guKrzEJJZtkvMK9ZExJcDf*y|^>v7rMcbGG-k|MvE zW36k-yEdP%C)V#r$s`GWYK%LG&sxmk0ADWo2boId7&xyHfikuD4r_M{iJk@Z2en+1 z^TA@Ld1F(}&tx7PkuIU;26;SciY`Uu9PHtUH;>QdkOlr~R_r>LS?TmMLKh(g)LAXh zU7oLl16$p zE=IF6LI#?E3pqMKY7qQMp5BJJd%9MFnlc(aL7woc?^eI$11e`I1;q51!yq?PG2mh=9nt$9EqTRQF_V9)Xx7I z#~FB`TvbXR(y@e4wR##|5{FAXLIf_Owx7)V87>?tzs`wyK^Cj#bc?>D9K>%gVh*1J z459})%G!EoBOcb_y7J28_CJ=0<fGnsw9r$3ZKYnqHc&yAbmcp?8Kp zlNrAVmA)5B#tM*`s{@4UYo7>Rg&h|V^soI32*WNWRNRGOE%!Q^mX*Net1w-^x6cIC zbDZ~`0ha-fB(A%EDxA2y4Fi;S%I+6&)7p^r;2i48&}odLMYsp6OQ5#6^Nc}5?mDOD zLw7M7`ir-(xD0wQ!*0BTJ%xu%5Th!F+=?g0eq{7=H~46+3vgOxUyF;JH50mol5LK< zOJ831O^U@sEAY^V(zz@aRfg}pGfP_FL(4EN3ofI_J9VB~0kYo}{McNH^!B6`rNy_F z2+$+RyNoF)G8!*?1(a&%3#^$m0ahZymi)r*J!A52Ok2mq?0W=8T)bm3+wjGSEc0Wa z2C&U%n|51~&2SM|J)}cIz@^qEFe@mL=8D$S@@p_n->ZXqvs9L6rZ3Ejw07C2uG=OV zOYMSJM8yQ-IVfQ`Zja(&(8|T~!Cf{e_#^!j< z>Q&Y6UFkHX5gKe;tpZ7}!pZQTez@my0km_O?jTKWCvVcBNW&V1+oLx3jFj(Hq%~Z0 zP};8%$p zr5T$`v-Xwdl$GXQ|Hm|xx1{W-V_EU$e@sKmua{N)eHyx?yvDJ-_V3fsvhv33|Cok0 zFFASH@gLLBwz8A$f1ifVofIso==$H&(Em+0{9mCPn&cH=_Fahvi=2LIsCQjiby5@2 zY&lnSg??YNGo@vTuby{a%eoty|H@Kw10DnMQl&TmrT=?0K26?a@f2(#sP6sSep2~4 zjedkvZ~gw!R;oISb0O(Gw*n>%OUvT^ z$e4;Z2v4jG^Z32-Q!F({nYrk-@3a?5CyAO`hw1^d3Wl_&d06`S{)Q%02M@D+OvaeAWf=iX&S7|xDLo&3p+DcJ&j0^!``{9O&aJ-n+5SIdmp z=yg!VS)=tvrOoe7nhopmaIB}XN3|riqWV**1;ya0gE;S}kPu_Hh33Z{4kr=iA;j ze!OsVX6oZb!T;Q+9^Lj3`SK}!@UjinyrkuBgh!?cS}%PE-9Lk6X|2m~7P>=6#1F4Y za_;Yd-uFe4+MlT65NX+D`%tz#O!2joq&5g|V(N&b4jYu#m+%IM@h@?UMyad_rA=E% zSZyl#s~73S8Y|DA4{W;n6qM}ruu6=bv_AY3pff`W5kKseDU1J#sc0V<>|b_{!nuVz z+x*Sd@TArt1Wz`BDs~sgSKNmgq`3Y=?x~k+C^9zSncN7uqQ@l#$Q4iJ3PJ3%iAM3I z=gx^CA4bA%N6tXG^>TZ{j0Ni&UQL9ar@gZEmz?4a@7Wla>}mGt{N6eU`}(Iy0kz)t zt+{Ea{rIkp33C&r|It2m%~{S#+TvD0m~O)C!$)V+j)ORB*;-;a_)J~{*Ri*sbF)(| zap7yf@x_I21NL7Qz6(8<|M~HFW8$Bm&$nItGqdfg{JCE+woGHzvE*(5Hi2qH!>T={ zyU;(j-Y%NkUoGjN8O5+UIDJf6lt=gJ5I3`CS1$8InnCO_+-!CcdU0zCwi6+YZ-d=G zD4^9F0K&@4opKR$FBO>Sb^%jFWU;v*flLc*b;@9p(~JaUwNFA&!7L7~**rqDd+;}h zwC?tU*y#_P9l3AxF4DarVr>pb^E47Xr=Uvn$u;ugXtyE8qze>m=q#w9FIvM97V4Sh zd&yMtK!wF_j^W`kVliu7zW*+A(rmZ#&^BIsod61C&{XanCMni_hhAqu1O`Krxx{_E zSbp_;Zt003WaMzn zOW2tX17Y$WJT!^yU+36gg&5}ESr~))qmfikTb?hn`UmF3xIo5MVCu|eE7VMK^`sJ3 zGpTA(QN>F>A`aBLz(#3KQq`o$ACl~b8siVeA;6k$k=zr-$F zd;8QWVrUT0YDwf;eJ`~BO$O>a$B(?#dK#%Qci}Qx$(C)}YR7|6dLet;B{|bb%Wu4n z)M8^j+ilPxeD&ezhppbFpX1L7)=wV2t7m4?W6%bpzVB;oCy=Nrsykm;qe}ThnF;HC z$mvg)ICO%mzZ`n8hB2nNmmE1Hs7hGU=^87j4i*5Ujl%k~7j~CeB3gPIJzqUJOol8V zZe_hUEX9Lg(BzMd6sOdwZnV9#{XUA2RF-~q=e=SJ;Ul??;vV%40r7seR2Tv9oe^Yg z_rO*;hfWBNw}SKq=>~lOxa#~4nwDtnligU3Zx2_ZKyG+^4E4-Nxmmz9hfylto$q~R zRWJEnNK(5{F@aCGe!p>Tr-mCP)8+RPOx!y}KCb!jCQ&u&+}rAkU1XkB0pXqjZz)bJ zfQ-qCc`9;R%U6@_dQ=`^td4(&=)xiWUEbJp-QjgEmc5GoLzswT6UD1vVdXZ)ae`xZ zxF~T!`ob7-1M{=fY6`Hzq6?>pj3Poc&U~^nD0*N#e>nvHp+_DLqa==V?X&h5DCNqVWe#1gBc9yE)*Ix}J_Mt_ zk0D1F$>j06AAGa}@dyBluARdRPWSgz#3`}-C4R4YY(am z*ynz){CHdT_fx+mp{LR{x%w#xG}Q+ZK3$nq!T-v$6R;J=J4qo38)MQ;SDKYoxWslV z3xlRnB92m|i|O!M7#X+Zz>1K}84k{DZ-5fn?t z2lInJcx*sRXYFLXp%<(=i(LZk*J|b_34*(?Pz_3P_a?AqE!=1kRy_knV{+6>an-(D zLK`~?3A3bdqj@-c(b6ayNO{if_Cw8GgOrS6y$p^_1Nfc}cOS#a_G6vM;Mf_osslHe z<-92xHrt53rh*zP!39%x`S)|fntd#!yB#5DSd0rJZ*+yyqxl?+dzO=W=BN6sK#7PG z4P;fH0oONRqMOn8Jzz`e*V>O>e%y7v0G}gCcuIi?s|R?z=_h0}^4`VR8i)>1vfR%0=aZ3qk|^a8Wz#ZM z%%T^DECl@yN?;*2soB-nZBv#^wvX|;h8HEFZC>p!O$rH3>7^RWJu3UwpS&6?l z9*^exm{Ni=k)TX5s1>s#Q?MnenQA6tBsvBS>~U=`Io=Y5R~rJq1waZ{RkfPaGMS}G zOqz;_5qUTC@O3EfFci&q4P^vH#o~Y49OsgusC_}!%_s5%!KRop&IeT!7!}(Lc?#BR zNozpjvf>Y5S%bSBQoaE}nE{+UpgczmB@1@pd{BM}b8;)Lkcrc%EzQ3xT`WnLrP=x- zY#|R%Y6cTxOVh-l3Z=XypgciBLWLs7&;LXUHwPUUP9yk$X$-TCU3)_WgaTZOw1Ia} zRVJGZny~yY3AgP7K(YY3)GU1ouZsj4@D3p*1*w624IH>nT$TDXO4>!3o#W>>J1Kfs z*8$u7jfg3H(-bn1)eID#s0ulbmM^bL5&~IoG4ORK%YfJdk7#WopA2J?1ki^zf=gqH zqX4h0A(O^K>j8NEsa;ERabyIe$F7RZaioQm1ULu-h!IvO(h$adUR%={9oq7t{{dK7v~Z3Q_}pI4ol4E;WaRvOtBat-B# zoS9OWe*aU^tiBqZsfMU)yCsYhr6sT-6E8KH2Q$&jx9#wRkDqKnZz==jGNIBoF!3x# zg%=;q25QSo=3Ajh#bp)Ox8$(6cih1{vG}z{_>U^6>xUtlcvtis-~{hhH^ld7pe{$@ zy@&A&YN(a`rul5hNz}Ay?udK((89%^M6^7@`;W;V|!{`h|~% z(%%Gq-aR>(zy7Bk-2GO%1-syltQbEG9i%wRM_~>HR3ydV(9CncJQ|PeJ3kzU*+fVf zFvD!T)<_aHDhfd}2I_p-h4z5TWU;ZlEmo0*dH(?)~;tbO_L zR-6+~j#5RQI*|UP#wo5XD6hr;+OpvKU?v*1rRAR3?gc~|w=y^Jg075H7KyM3YOhRZJw z$1Y<)2icg7?%7b$p{DDQH*6;zg60XrG=B^J?1B4YkDF7DYviC_?7^n*#x7)22@QdJ z4pVoOl_b})6FO0f!tzjrp~5S>*nVl@7l7aeZWgyq+NetzkhSynuwFn9!K_+?@oK!5 zf}l!*h>0?Vpc8KUxt0nFKcp|J?*<{~CV?dp0`{{C#pcm@7T0&aLqB;Acstd|vhw^z zz`4BBDKCMoPtypmgUE1GG14%4}s9^6Ue) zGGm7c;9UPndF?4A7}ohzK8QsOGu{oB`AISQh-0uO#dt@`aKBXJ6} zr6ywy3LM6gx}*H>5mE*B50s*}3R@GZucvE(JG!J3SbUn;Se8Rw-W+m07iETT^!4id z_VHveOxw~F?#aM3tv=pj+nFa}Vo?Jj&|u>mQ#jcewC1zBY_QJ4#>~}07u!RS{+@;R zx64h#E^et@sC&Fj_JV%!I+1MmZ~wIexzNYqFsnb9PZ_AOEkPCgw-N?H2)?iZZkH8y zdRyLx^q5tvgIceGk@1!K8&N-GdRlu?J4~g2ct-95wBe77c_Ox!NvCxN6wL0#H9cD9 z3~z3s?kQVs*b~PQ-7^>5PvLu=8MyB-@<3N~AVU_+S{vmub$Y#YJ92N^!C+$Kj4>oY z>9X&5f7qoDgGW>MZ9f3S2wQJXUVGG(Qh5K`$sG?i&bT$26IsWNyPEFFic=y_*33E9 z+#7c3yA~TnjCYP}eSdNG1DcG~wVxVE^tU0C@dvLF)|b}?mZ$LLK=Wo4 zgrsB}p)6Qn2m=EnuTpXCcaF3?m~}fdhu`22dwN{7l(zYJQYU!Nw(Exn%yv;}eF41Z zyBxYVm$@dOE+1dAE|iHK&VBsLNPs6Dy4M?e{SkAlt~a-)8c#^zkXKHYY!{AoQ#qYpr| zB4YEqiFqaWBtP*hTzWENumR#NF_V1*Q)lBsFa5Zey{K^^P+AcUscfx7%||x@FMDxo zUF%f#e{uA=T#LdqrYs44fzp0e0O0Ev4xD(_IvFyOmFj!_7UI36CZCPl%C4&WbZ1Gz z9slT9($>agxkA?W`_f8u^`{4at$YdYzaM|#^}CfT(}wB_jfA}+n@=?Xg{?=WbcwCx zQRlon%P|iM&+LoP`1~p1VeXy1g?IL~tX$cY-*QOX%_Y5R)S~^w%9Xyj9Py_%hgzTH zbqCWYKt;y%RsbI&!qNpV;_nY!cmPB=VGY<(rlRfFwZXntJ}koA-bCbWyYIW?>sBFl zcdl-zaN4wTm}&V9k5R9SC2@G;Jt~jKRlja|FM3+SJ_7pxh5prg zxU39^W+iOtA38EjJDJkwR|Q7LGzGJP*pNrR?`8h@4JeAS^d`Z#?jM(bV*PG|VSKdw z02a-B{!Q~XQ{h*V!jm;F??t)La&pR8R3chf?#$bvB52ZJ10d4**UyXh_oVG^K!+l4 zL2{paD*W+SV$c4x9e+JPsPN3=W;43A;uo$bR6H~E*!5X%Ndgs2`@E5sw3LMWOiD}K zsxx&*Y8n@yn^cC6{LnW$!M0)Pk*02?Pyo+6C{=}-p}+1{u=!VST|2$1-z9D&jVD@T zN*|HDyhkRp&d3TIZaz4Xg$v08y4DGGDSt9#`m>vX$%ljhcFkboP5wvl5I*IX=ds;4 z2>_?MCrgej%IQi6I;(xRYKX>u^a?=jtvQrUC{Vu=GF`uxss4rvI24F&)Vn_jK@5B= zheARX8f2677yJgvg{PN6hL9Gu_OTHMqb)d`xvi61ycMbCnZ^y^2_$c(w7#!jge6f1 zw00pVlEZp(Z4Wveq}z}esSe{g=P-)K>x)gQ^?D%{qqXDgD-poz5`15AmjM%C8tX-O z&9RR@x~oyA?jAF?7maR?IGq2LL!#@f4^hn!FyDmbrP;y5m*&4zL5jhWp@p|%1@}y| zyhYa7w{1mgvX*AGn1`?6of)|Im#cTp=?8mZv>)GI>lsyb%@iQEZVUWR|n*Zl{7s|asn!g`=@@SLR_6`s=vH5bqfWVz}Xm=3kE;VVRw zmTpY=8G*!g`ZBiL#5>>v3jUoG8*d$Kfst zIj`jGCfJ|NH1ZHjJqaXVuXSi=M?U|_IupBC?ma`xrK)CR_HO3-lo2L&y|FrV z1@Rso2;sUuZ@bo`)T0 z9x7sA=DNK*I^e1({Jsu%eWKXSe(9-tR-$8e#Z9h^+F5Kz+_nE!Ryc$w(FCTYMC^Bn55MrnJ zDP|}`(P5YEps&%I^Lg2pA8F2{n{9gOqVqisNCFP9lv9*jr24b>40#Iq^9C!|hMh z_)oCt3->VQF@T1Vo0?nMq!8BT2VQj@>!d@|r8Xip>1l?(@ZEZh z-kW(ba)QG~!eS zNkxd!%zQfz$4O;43d(_mld1XIAg$A zhRgEd`ftbZYfj5g?{(YTOUKYlyP9cHXZQ|dg{20=xcx{5oC9E!O~;h$8R-OvOE_DY zOpOy?sQgL6S}q+{r&pV@PqE4BUY*L^X3mnAzBD6g&YJ9fEp0LrGH9DfUJroAjIrk1 z14ks#roR!_5scOZfJ?d#9^4;^(R@B0^oNVOp6rd*&ufBAG&A6MJ|W8IOl;;xo3MFqqQ ztIj&UCM{B;M%T_(f^%H$fo(2#i5c;&hW)!fA6-$pm<~Sd{Y&rEeGZ91KH7HOui}U| zhrj^Pdtc{;*k3`Zu-N1_>IyvWn}S+JSy9{dsFAK<%Xg;$`)b9q5S>-rbNL(+_P}>n z_%5n)c&T*pyAzw0g`y@hS23a$!e}tpdC#6RxzUIqX4e{(W5_^q=T&GV7w@4ZcSDnv zaCJZNy^_E5Por0$Qsn^3HM7a-Hs8t%c}E4kV2(Y)r{!jI9lFUtN>u8+q%P73x|T~j*MyZr=dyl=Vl)ko_$lQ%0j z@o%*5P9|&-h@9r#8!mI|?zR^AA3K8Btx*dY0owc)73us70TvPAH5_s&u;F6-@_ne7 zU!)u|X8+x$u*fTSd&&iO^x4a5KVwFYT{=^Dh!m3$EJL}jz#Do=>b&?<9>HV-yRL_S zd35HU&oi)c%MRPPx8G@8t$6KEPm&9xC7pvoZ|bHGE??P@Fc*7f>(|955x?pBWY+XwZ5f2-H?_8(7AQy?n;n^O3be^K5OJP^{grr|3wkEF`` zr;#ekTg_W$)vC|`!xwa78&;X^!{fbZ{W~+H?*$i4yknxV{Qp!b{Qt>w=XV78HP1&M zjxHQt1aKxIHbyn(l_k!oLBy4{n-qnctuz_SP!5b4%alI0{f!wiIhOq|Tx6QPTC^o^ zX+U1()#jSR)*Uu)y_eLKQ0oFPKgKJ9fP$%c_-l zV^@(W9JVJ`qmpNPU2n^*6~&F1>Pa?`-XlR)uDkY-_8AFem_u8CU&k9}04*NVM*7uv zZHE7?B7MDR4U=oLvZOcfM0~tb2X!1Xzg>vmYxh{ileOF?{p^n-Y2V_1pj=|seYj}Q z+K{{;Dag<>74v!Au#q0WJ!6ccQ0|eC(7F>Qf0JSSB$+cIi6`%0NtRzHs60%IuKxEYBNh7{ZG2f_z$Z3mN5>aOplPYTgdos`2pQC~S3K{2N4S zvhr2l&S0qYjrGA)NUs~pzY%L}FY0L~-2_$_Irv|5MW7AT%dkn~(0x}V1;h(+ZMx_o z38+cpNJFe89azn}RB5nRURYTRy`;Fp1x$2oUe%;ZGR7z^_}Cqd&6> z@3ghWW4V}c^(>~!-lv5W#XotdJ!qrX@tw$@c2HARbH&Vm%xJaYNqYeg&!=gT^=Fql z$HX6Day{wEN~^1PqjA(1956l3Q6XbPW^+%)F(wQY!DnlP*DXa?4{QDpmx zhu=iR@L6oYBrQA@Qc=-HwWkcg!r*^9#dk3B8_}xLX9{&6teG)l{If`E(ivUUu>cvz zD=I*$fOEHDpA#z6lW1?|cf|$X;RL zW3b$i>gX@?^{x8?FbiSzPq+6aIPO0*lnpmdeJea@fAf|J^5WBy>+98**Bn}#4SS`N+!wxR~H#z!N1D3Q2+!4;jNVd`gVw5 zfr|jpVgsQ5*CRFFFG#K&fNd;*jAa*c4=n>UqyntID+mde3Fd{0b-r3M;FyUJ6UkBG zG+YtlX;XlpFX=7y0>FrH`Z6X0sCNr5#&ZOLMJXBvGhGxE2Lm)aUC~(M2u+!WtSGv? zwW1qC>>UsP_+SxHSA2^U2!o(NKrZ27?fb#t?H|rPIiUq$=fAsyEZu>e;FhA4!~x6l zV^m!Wm-mp-6!yJ6TIA0RM9F(?;P!+3y*cjy=yWbWXf= zoNnyKBQny>JMWgJd@=A`^bKSyJT$1X?tdnL+r9(;n57GFvpR@bS~vl_CC|%3EK8vX z0Jn)Ug$U)dB;;lKA+6NdEWrXcNLtDP(6BUiY#B(h^I?bUs=BadpOh9PBcnYT@QN0O z*LuJ4aP@PO7jR};JZ|87l%*Av_CkUI>|n(KmyY1roFpF^ zi5L}SF9NCX@fs;fW#)mE5noA3fMCZnbEp^vRn9O($@o7gHkC+Vpb%wVRErr*ofNzR zgtctppNLi3MM9M{@oN|9{w)A2OEHk!IP;I!a>>B}Xnl(WH!S-~K z=%I8tR6yi#rKd5P?DZ-HOUMu`XUBSV5Z`tYbs`}R@rkc@NT*tmG8r+9MVbEzp=E2M zZXzQevr9E2XzwDhfdDl=wpmHSC^qX2nr~rK%ax450#geG8U5S3(oJboB&Y$Tif&3P zKsrB&xspJ+!=|FlW1$1-c4)TL)vKICMT^)itZjrm$W)ru#>;9`k_@h5ZiQ0XxRelu zMYVr+&Ddr&Wp=A;&iTNT4Xz|L$$<+0>^6iv^)~G4WY(#T*cJ=wsZ_uku)HMBsrMlZ zjWI;{;4Y4qu48U9aI#K_B!Q@KtShdI=Ha89Q(lh&D#p#X>gsZ&X$3&0l^ z)H4zg+D&~m!nZdA>Kaep&cLGN>d%w@>WUqQIj1V4PL<=yvawURF4HL0Y3L@O^1w7C z9j5Qnq|a-EO+5OtohVfUa5W}>lx_IPChwRgf0WYJj)$yigo4^2rYW3VAG2;H^-*j7 zx@(ke9f0qzf}Wp@i17{FU*Opga#Jw*i;M_JNh?0&H;V1s<@xIx=%@IAqZpzI@Sc_X z(1!S5(INH~XFtkmdvOJ90jXWOpy|6>KeB~hT}993wDsrQlVpYNzSO_H z3wG_K*YW^8#Oj9QhU&ZYK{+lZ?(B0x{wfl*=Pun+nRxsV7HPCBcQ+ZvWio_ zQA#Q2Iq3G{FhHs8Y?-~v3b2-7s8ZrRg{vnUw2LM?$^hEGW%sdUDo`fl9zHl|-5?>` zNNugSSa(TA;V2HxU=*Ik_((UP`_%+NppO{S$j*O#kaqptg;&ZA3S(G<1L^{H34%0T z3FzBHASll?%5mpD(5;FHg@=n!EY0I%*W2Z|>pj;kLdm1kQCKO-Vg%=gP+#%U956=3 zJD)BEUD@tBN-*&@2@-=e8KKY&x)noD;sbYPH@t4UUc;q77f7FR=^oBf=qvf7F7PVG zA@>L9C@HQU1)2g;ZsyI8=b`WCt*v=A@0Iq`y*2F!mMOkrf2ej@W$nGw5DIFzl1X5z z#OE=;L0mS0AS1p*sKpI2339+)23#Q#+$5OgSZkF$eMcQcmEF*3BenC1G!EY15>)5r z?~nr?=jw*CYW$=Z`ARU&jEoiETG|J=@@hWDK<+SB#}Td)u&2ijH6@sHf~;*p+Lk<^ zdJ^|~I>KT1R=ZyWh=Xb7R!+rd;*|u4r%vgckBF86>-=)?wGc+S1tSA)rXP45l{TP|EbRi=oZXw zoS-HHH11$c`IIU)oVB?UH8d5DZPsH0fn-+)-nCZgeGLCz%`-xi=E0+i`&glwHMfc? zL2Q&}26EgxK5YXVx|msm;T7g6Q#lp4_FFDTsY_>mfrAo?fgC8|)1FCbPX$p>JhY4p zE}U$!_w^_Pf=jq{Ie5WQWoj9z)iNRZl1?Ef_~t7?l!26J`kOIrMfU1h=6d=3Ae**s zOU=?bd(q+c+_OT9MiP}ESIZL2wDDUE^MdeF4~X^t^*JYyfo3n+IUNUK~WQ z>plgnrGfw})=t@($d12m44LtOM0~KL3O;{qhVg1udxd1z!Wqy`(EXl+H-J5@xKV@h z)u#wLt*DRF~qvR~>yb|8QWCI|DapWGxqw#y_EVeq&zKD9GzJ3sE; zfF`h~&DmjqNId?{91IpX5C@(sN-|+Hs zO5W+tVh-TWhOjbVk!E}47P44>i*s}D4%4SZIVQ$3AB_OLNC(n^3l7e8aeo*Tg>dhm zlGlF+Y@bWO8V6hzcvIT_C40k>{Lw-2AM zhL)b+d<$vl@a%c2QT)_)^Z9^Sd%f7v&kjID#rWF0v}2P2yGAyY$VX3Br>FtYt!j$j zS=R_+QVrYbv1iSsX2e6zuc14%rEAJ<|L`(g7{?9{Wz@oHd= zSJbK#m^ELXFnCQBlzW7^Q=y&&{S?FWk zZ6L=)R6zUm0(Io9rCal@u$vYZBoh@7YD#nwkG9f+?F3_1NL1z=W6{2-`;Un~hHw{2 z=QaPTb^hy?9_(N!Z~!o%q6@;Kmz7ZZ$5p^meae}~#B>fG6py@F^cf}Xh|WPKO5jK5 z#|QNPx);~QCw6Wot*~N0Jkqyyup@#N*PJV(Y>`AFWD;#X*hOoFTffUqe7Muv%8WUQ|Ij^zSgO2PznhlmIG z{pSxUzvFm-qh$KOKdXU1@#p)p{N<5szlf<%IO3U1Lmynfcu<`LXx$~M=Du5ZW5TwBN6NGBDM=qH8ePsCM>(MP(}QtI z4)uHPNv(kkmE^@7+|7`apC~qM&`1 z&C_=J#|bUS7J!&*s4yz6bpOw_bGQBU9{>S>@Km*nNp{Qm=r;jC*VVvG zQT9$5VskKYc{R-KoiKzTJTLUCVTkK89M&fkEL-gsVVFGk`=>DPZXk{tOYWL{1LP$F zL|BYz2LPk5`H?`r8k(tNogC1)$%L>*qQ|i802RRKCQDfdlG{j33n$)WYeq)|*b!XLz3~wM#?i&}8H=lXJjEK$v23x`K+j0BflqC`r7)GKqj^d>>%_)APO^Xv zjs7PyQ*yb%{AQA`qoEkFOhQsGuQ_*C2vM=3^nh& zkwMo5$!dF@tBdBZ=2nMC;}dG<2?Ms_hfO4*C(BxMH#ftYRi-(89(t0OS5Fu=dt|+V zz^Q!!xrJLlv5=`ZiPE3Oe4=n!|^CKk7yO7E~M(j8a{ZLy2+>h^&o-< z6AAkGCQVq8eBT2#6{YIbXV*DV8#&+FnT1R|`pMn=Hll+Lp7k*y&;HS%DZ*@P-lu+5-kRKT5ds(

    5tQJQpng9{T+6uUZBMF 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%0AIyio)lRXhKNUsnSt0$ z^6j?$tS zy=t)*3e3mThh9Bi3z$7LRtYXXb{-J^aAUfQT2jM+-TXpR8tYc}cx_kBTX&zu+lET5 zl{+IGKhqWV@+ApJsbOu9sxt`Ugx!qtwZbEg1!k4HlaAH(4j=ryAc|&r4stjNdP0m8t~At z$_gjLBL>u=l6TiF>~h!A^N(r3fxqA|6*wSDSEVVV<1f&14^1Si^X5@W8^J86+=RIc zN#+Wz&PSqEUcPgJ+;tZwh;@?=(A8X5Nl-sHfj!Ivj{iR5R<6&VHN9LUt2~qEQE`q?(>@zgtFok4oF!CK*WZ3&zMp`Tq054pAq3DL(uDFc4|3M{=OA3Try* z=*UzIA_@ok&+@%mK!{z*BReic7f7em*IH%7=|f^o{XI4q`~CrNegA+nn?3`Y=w5Fl z_5g~&Yop0n93cL*M~p5C@g9dSflW9%70#h6_F2f;uhBmI{zt?I=FTAUj01SHdWbpo zo}?wApNJm{v(87~%Ra+?iW59{A`bSE02gODH-Yz&{2dqnTmsEWEF3^a!}mVzF1GBx z@dmtBgT!ur0P%t)xrvq-0FgCf0SE{y)+RW>S{D#uPFg6cjEHta?K0i^ftVU(kB_(W zqQ5y&aSbBz8$r?t-3~cjpUpk;%%;ab>m8j4bU43U&u8V{d#XO?Rfx$awp^o|gUn*^ zzpDaGGX-RwoLfs?4#W;3cq-BRp4)GEvdGKSW=KwMdRGV1jAF?Wg-gemqQ`&+k5?)9 zK*y3PkZ*6ln0^HR5k4lE*PF0_Ly)6(;#+);2Gu>I&+)sR&dCS-?tY!(EaWN?1&#Jx zu}Z+T?j86AyfF-SV~zuSczP6E?}4Z*Q$F|+DA&f74IY%L;Tm4Mc(5NxY#N{oO6Zi2 z7U7({GAO|Cd$~6cWUyl~bm=dG<;2O9bZ#%44TM)hS=@b2ofg5Jxif&N;&c>?MQ^%f zQUb1)LLmeQ5R9@L6F?{IU`8x(vXajC+aGmgkH5OtK5@+timz=_O4JdUeo@Lc6SC$N z!$TlRL_A&pWRaL9h65g9;Afp34`}|(M6dRbn}n&@F6-Ee6Ox}ba)!()MYU)gc;d_I_e1I#`{C9f;!5F=i{*O zEf|_?^C_e%>RD)cd&TUDcji_IK9x1M{bDgMgJQb9_f^D=v+`Cwj)2o4iX)fq-1x8KVp9*M;a;567r%habRAVF7-)R)g5%af$Wsr{9)^L$ey{vM< z6SMA4f`cY0(hlAJ-rb9W19=l~6nybjMB;M7mmffGG*!-QfCUKlrF zwUtXo?hl~!D){eD-@rohzt{-+7~Vos$Yl5-w)n^Rt4B^8&T*j>cxjc5hf0uNrYd5E z(z%`L)di`wMaXTPaWtjyV^MYOiCA7F(=9Gjr{M6 zM~%#_=FnUYj;m~fAVt`eYxJBtE%g|~eV*mR9qP7uS&+vB=EwXUS9(u0jngSFocOog zVy2p_Z$0=h4=OIu>AAJa4A&;14J8F0!gF)Q>o9-%xD9KgmL!k$$YhiY{FwrP$;w|2 zG#KLAs;6i;7Xw*yUg%tL(M6|tE%9{cWMU;%^~MmULSA&0j(nKz~VTDj=NV}bn(a!47sm~V83-snx$H`U*qn8)gR z3lF8&y;sQfZu#mVI64!Lj;eX3Z|9|lW9{-~ERQ)Wd_iiSwhu@o=&faB*jz^Ee|By{ zI-I~fcIejkev9J?HMDEJ|KN{avH|s8dR)pnhSt>+i6MO2z`9Nrg7`4Ke=rMjY2%EJ zXgiUa3yOM7YUnL~U)TQXj}kW@F7!Z+ZR%ft35e1UhT%Jc;>5!Hd;Gq5h%T}k&y0@9 zzt`M5^dnII`Xd)dy>wANw|*_~m-2rss~@7V>7sCvsPH^)#LG444RDOr7)>WszkI*e zh*G}==10jLJ3zAR@p&a50)PDmEstskv2_A$Og*|12r;+R_R(pWbP!>@M79tgOWWAV z_k_{~QWQu`T`Cp?SZ1tuS)c?Vr91YO1(hXHIlJ+Pad!oo2G=A>E> zKd?>AscE!ZmQ;zw4-Uu23S=5%s}t=Oxy|B(`TtW~UU(^pS#KnsVth~@_)r-6(f>)B z;5}Uqb7dWi{PJ0v{)q zc~hUM{|jyt3km?#qx*f(zdD;)G}YtOoxhBif4YjM8U*n`qhBw@xaQ+s@NOX*MeWnK z08EbFF;x{jPdL6)c-y$~E%nzAqWH=mpy`uS&p@cVM``MR@FFBGhtcj<_#SH9Z(j|L zKPyG|*mGSJdJ@rZ7tXz)oUo;p+Lh60MoqHM@^cTzI3E$?{vE0U^I1;r-6A+J$qe~T z!^TJqZdfv5TX)DPnIk*XEoRC&x;C?I-;T%8U4T9$8o=zyhf+Ny<-vG!#RsAW6Paun}nZSMFT+nwp&S_L&tOFF6~hws}(Kmu79ao)jexlXXlpH zh{$~wLmpJ2#$6!*WIF75Yat8|NG>`+cpq$I#Qhd+^jyVG1>pB~M1MRtXCYS-vBfc; z{9x;J2W;Yi{V){rx5W%3R)lLi0Yl0BHqyCEZwYm@`yD6b*oOZ;_3*eYy8C$FKs@Jn zjPDf5jh|c9B9@zeNdpQb?Z*g73 z+H7`_z5OKU$nl6u{IT%PRNPV3(d6ejwSbmz40HyrF!=65sY`^iN6lm#Lh59KyLl=t1 zo5y?5c3JiP?uSDco%<~~urWc)C7T8dSOADMN;HQiXiQFhx>+^=6|_GS={Dp~r_^*0 zOF^@2NP-h6?+0{YW~t9e#;{2{JY}E zAmeeMcW9taYBUHeXtslV&Zqyj;3X^qqUNNU`8+BdG3*QE2$)DMeX&Es)o6!+DrardqM}6t(HgIbHb}sp^)RVRCYYmXPQ%)g;l0 z;Y(d8VG*sN8LEUW*FOiRj=gHUhertZJ26XraoWnH?uTD>K@2ep53p zh?_3KxEVYzDXbhzr&KS+dw=@uK`?SmmG-v2!I9cYqWnwitOkn|(zpJ~o#J*jNtKLE zU=Ql2@zNwTz1oXngZgqv`wPvB<3a{6(ZXJ}7atFMe%9`c%^8j7eZI9GRj; zciK#2Wp+NmTK;<>(a~C)bTJA(q*oSw`F`GM9NZs*NJnRG-A^|9bOeiQs1P1vA7*k1 zii{>^$DygrBn_uhJ~6CRKI1l`*DJBr=D3)_+y(e^#gxTtO$y!;Ax12p=a#S{%NqZ} z70MdBpOIrqv2J#x8qC*QEXxc#(6VA{b6Y=$Uxc2eK zw_E-vLyvKLO*vo+={urV|3gR2Z5ZfYFtV%j!XK4Jzuct!T-C|Yo)~)_F2tPlUfNKl zPDFNGrTBEWpJSBDbFQ9zkzUu@@-`-xE`d0Cfcb0i+@Ei+KPExMyeHWYg^KkpFWk;X zLB()HhdsmOKljTo?ffio^4el2cJyVUS@;a2lA->>!e zzrX!>#c=R+SZ}5OVp!vd%b{xkSGt2byn7uemSahQ=bCqSn+h40F5MYn zkg>13^j5EjqI{L^q!(VQvv3GH=Y&{pKgEN6FIEX><6kL3IKj^7wvH--b>n6(3R{2( zcUi=%!q>zML+l_qnYi6?ZpF?V6;(9`3JbDUX=GEX4!iK<8^K#m)wA zJ&LdYqSvBgP!S}z)JrNH_+`=r`MOl?Z#+_lk|?&b@rsDMG$K^`vA6~_Z|WyxM~ERO z+@X6E`kW=^XDqma?!U1)d($xL;x3i=rMjOw$Bi)BTO?F!mAIj83$8|?i@kK%k!B_b zIizS%lRY1M*eMutX82e6zx%zJX8o4L!*XyOdYP4W+A@KVtSpgLdge>|hkqIs_S-~7 z$Ub}kKCTn>aMSu~yzk7ODft6~Ed405QCaXX*GhUf5JyQ5n4!VjDS# zO*`1?d8^maL(^72*^aWf0ge6C_wjl%!=!=7?@B zqnU|iP!q;HaG;6ZHNK)kXv#go>MvBl@zX8)!-YZ<2kusc;JlHkxRFwvDE>=6`go+o z6*mTy{gjD_tCS9o>G#;7t|7hGI2&XU541KE)bnWLK6=0G-x;91L;N8>5FVd zHpE8p1*%U?(w_jP;K&w|dJ7T`-h##1S$X{B47lYW_R141;J1^}1R}IK5ESb<&H~Wz z^CDIP$hsOs<6rE3!T==f#rVFfrol+JJ-`9nwrnYPfE4uY+gi zx~1UpYKkU$r*)@9r0w+rd6p7+RG0=Su^~P-6G3tZyy2AsH^Y7|s1bm;>>WmwRFb9x zndCWhvee!6{n7C9w;#=CRDS9;oh-6Ww)vw`r8q7)_Mk!{Eg`x4O-bfshr}|J_zc3N zY(N#Bm(GX;cDJshGLM$;6PsjcN`C1LxNr-o#Vv{S#Zimx~F4nBI{<<2bc^5TdXb|_(>F}@Kt4SbdhrRO4qZz?I zY4_0E{}iOv-=@7Ogbfv6X|xd`5KyIB6SG8@19$G_H*a-~U{aK^a+4X32fL*E_DWRW z*@KU6c>uLZh^GpPX1+o(Us`FTztvlLi32C*@VwaM9HJC(YquKzS^m>4lkFTP&xaW2 za!cDYBkb6JXJc33=^-nFVNX_08BpwaxkstVha3f_LR0-r6$VT~lMB=NVwtbh8Toz1 z68O$`!tUP4$uNl^wz4d5DotmIu9V7De=mbazVJ>u-Y13(KgE{+3y5t34G)#jkA=(J zFH~UWjy&4&Q%wWgRA#V3GL~LR!kasJwJO~xx4srtd_^S`F+ev9>i(2`>G+i|HkYnm zQz~w1_e7HOdHvXMk)@)oRTXM|QKKh=#RJU9N*2+^@Z}r@fU%jTeJmt@@zHKbLx)n*s^?s*6t*<^lWQ1hcD@P}#nhEs)mTS*rzurm$D@x&ncY<=k(NBG+&}xv`#-k1!YkgN zE}-s1(e%ND+f*4Ox%=peNIA{-ypB%=CVZ5sqK1q~#J_;ReR%D;E>g1`T82{^2zJ{C z3s}6J-xY#jMNVsSO_2L@^>Z2x`O${j^E7RNIiY-~MgVb(MKCx<)L#O7{er%Cmv&3ngjkK(p>8%biWdTxA zN3_ZDwHxz`7)LlE3X$p(*&?mL1AoHFKMB(??sqD0iV6sXHLRp>v z0aB=?tzwMW{8D6i-AO$7*0NwffuvU({w*tz0BB4A@uv==%SlD{H5fyfG? zOh*^Iyh1YI6;XobLH_dO>|KThL7sP7d_xsKssenrK#c|+G!NZORxfAQRQ|T z!5T$fRI0#Y;}bP+C)q8BAwh&rw?JJ0@om-2NMKZCZGDfgK_S|*(CIP->2v_Dz)F5* zZ5~Ruv|gpnyV92+D~%TRoR2j$D3CmiFZKN@fNWIF1+}?%*0ZRhaGQdM*R= zQH`N#GZN>zXhiZ6CGv@3v0#OQzz;#9;-ADx*1KFK3R5dxg(re+7jX6(=Zpf~+#Se~ zh(08g9Bgf`n(SPT&=&jTgN_clJrt-{8|;u8{L(nYbIqXLnKp64>{~i*Z7>YDaecuG zDC#mOk81F03p=+KCU5=R-^3pU&6}1sehPO&mHWR-1;fAE$e0+ESHgo;-?7#rn@vKN z9Z8A;Z6(!-;KJu^d78sqr+2;f)HeH*L;uRdj@?;1HucIh#S4n)441a{Pb-Z0oq9?5 zL@)Z^+J7S_j!FkQ#RZ0UoTP=y(4NS|$lr}sl8u>r6`fHScGdkZW5Z$%yCUnmkKI)}TX}-%@jCX!$)JBd)*jf9qfs<^>WO6JsXf1s zE2qYzrsKq6{<78+GsgP6RN<*NJ?c0`uWqyn<}(|@vTkdpHOM}S3wNin3Zf8C+iTz~ zLp~I9_Q}DsybNe$)tQb{r<+jcUTL1a6ecT=HqVO)IH~Ef0Y!jSY^2&r8Vlkud2iyR zD4XJo*GZKmN1i)Kl4Ew<)P%jM^6CDaR^DjY_IbM%4DL%jbl=)jXt@t+=Mpmj7oJDI zOZc+4RP)S5l(|!2k|MXQ?I>spy0rIO-bz0pS^?KxZ>N^tf~ukBJ{NVXdVzx^18uK_ zz{}(W5m6Y~d(_CAne;SV%VD}35KesW`HhPbf|5$b@r zZOejgGt|{4+k;Kh-aOT}JvOG$eP#WwUp6}Z*?8uI-##Hlh>VMNf~PCb9NlphiBDr- z4nIx>X*g*B;{VG|ke-fF=LFnyBR+jaOC5HLQaha-V(aZW>sOONCcEH*)|G>8jhM#q zteo~(V*5+dO-+};8|k0Id@qzjU2+OC)J*P$kUf|s4SgxW40U5B!eL%TxZ(~s2{|1p zPt*NYyn_>D4_I8Aw95ZNowOktjxv|AUv-KoSZnfs6; zS5oOsZzaNw%T=YV*d%U$4`IpD6dVriwu271rHX4Pa}&-C-n^G`<-!2GE)wo5@4;x6 zi6a!KzX{C(@%K+UDRw0sJ{j|M?V758Le)JWMY{0_KwkudIg;I1IOW2yXh7KFCdYxMTe`eoAHN0#1^ z3mnlPfVAVXmC7JS%iz4MnP>!&yj1RV^Z;a-&*3_abE>v<2&2a9IPs9VL(0uij}wC zr3+kj|GmHq0Q5=XSP1zM4+?k?3E=%F)fN*Cz(m8&P&a@)3xFZE3q5e}(EEwqqm^|# z138H2)}LN_Q+rYx* zelWK5u7eHYStP{!=Y@wiyl|60M_2Z&L^hU)zID9&A&k?;nQ+8u(BebuHGk9S`*rh9 zMf`IlRU##jz!JRkw;C(tJcYDDr2cObQkOwH8fdN**hhd~VjLiu^NS5`{!lALK#RU@ z5TSg@xjVHpql3F@x?W2|1-4GaI{X#5Gwi|LPk6yWr(Y^|9k3sww3c-Q>)L)~=ez-A z;P&{5*8L{$y8}@>5kfMt3#Uqwfmj~pz@nI>N2MOpo#ZRsb|x{z$3!TZN6wHdD(}D& znGdC4nIKrMTL)d}l;2ef@pU0Z0T100KHql42eGs3x_+Uc@Mt;XekX(YvWhr2qFlg= zK7!^?N>wc1|G=;r2O=pzz2lvkB4?W2h6Zal?ToFg->9?l>gwR{`K^F0LYMk+mCJ*g zXwb$bZgd;Y-RAGMCp?(A*_gc@!e5M!IjAYFQHiz6dT+6Hq+0UNf8|I2Co}LD7y9t_ zf2x9yKzZl?&^iwJ>%VvUws6r1VxsrA7yrXr$n2xnOilkUvUIC}SxQsONK*AFWezVN zX->LL=1&UQG3uQ=CAQc%*YE@mK_c=WXU-|;2_I8NitiD0H*jTk+#DO9RzYUl`Gm*E zOn0M^4a#wUUvs|LgbHh>@`*tLm2!2b@R+ZK!EiHE3G+=Z^JeemK!k3@nP&8xOp`5A zXT-{NJvLe2q@D&Pr6uWl*T^+PrZSQgLV5rEesOGluG{<*$y+92Bq;0tS^R00X8sQF zyK}Df>o6`%8H#tDIi8AB;PBDSdNU||qy98BHuqz6IaJZVWs7>p8!F@-sgnq{w8Lq1 z`m0@2y=N&DDa@G-H+BeXHC`nzo9`RL`q9afsA%Li@)LB2PK4nsydnoeNP0aHupp(xpAjSm(nD{V_Q(lsnbw_Nz}{(=e5)8A}VBU12c{YY|LpSYG*7!?z8U{voVYG3utJ;hm{t&l^caT7o_l|WMO;#Yua)Mfw_f(bsH$~T z37I$E9J+8Z-Ze>xD}$WeVYl)8jlVeog1k0h03fY|FRZX9E!2dZ!~R$n&o=5nx*!Bi z+xr)thg}gz5#-`W=3eg&ert_58b9>tA%cOo`ZFz?So6?wV(p|XZSwE~VHUL$SDtrE zLR0q9?>A7LnI&bc;R;}-E1NQC>N=oW>3HvP;16@x(N>{V=cs(dm6PHj!;ev}|5<9_ zGdH-uS>V4QNU6gG@5oh)?CsU*KNzxES-sJx3`SC$7IooYBZM>w~?*b-ReS@&T#Qqpk<3>#-$73#afowCRO(D z^&h+c`2-Elxr1C&i8xYm7Lxk#!t_*bg)Om;z zV}cn+lS1~qvrz+jY!xyQgnR;w>|Tu9Tp&$7$n#G9ofEj1ekpKDK(Q`=d~BJn+Ypz% z+M%OirKv#}`-3bY<*2o$Db4+oarsz~pSV~WUzBI4Cf|=G_ZYy?OWJ5U zP19I|X6v{WPw%DqD)!n8@NISmG8Bnny)`RzgnZv1H{2UhsX19Mkle zazcHLjfJ;CcIlD|KBhqA)SWUZ6N=E9qUef~NWO#0?#3#FTS7J_^F98ly3%XdL=}VX z9;N2o-Z36@c0K1dNzF!)m5F&)%aKF}82WWf9dP@Fr`LtVx=V_P8&6jqod-(9Ppest z!Y^t{R8f!STO+U)Y;+|pk8TM;x#9P77bm0I64Aj;CS!am!L6X(P8vTgpK1%kNaHOh z*JsP>ylb<~@4W(ix5w*IVeeP)-dfwbqgKwY#Jc=2{FFNbeLnPxh&KziNIuXUbqiIz zydyxST4bKE$WmxlKCzulw4Z0_&MUB@zoa{Jv)GU;T0PdG_}2(C_%-1@$O|=T{daU^ z#N9KHIR^>0>^%`ugU|+zekxU*M*XUSICn)0QX?T&G(&=!)}pB~&*wdUAr;qktd^Gf zVBSI9_um%K+8nktj$^16A#P>IoXpft=)grU#p}mQpcSJkv}PzGQ`Q<6_61vO{_Ddj z#d|Kwv5*GFW7m0Z*%m}%t14~Q8n>!j?v%UFGd@-&`KNeMygEX`t^>P%TLw^^A~pU+ zspBO-K5v)EMSRJ|5+|p7BI!Hg_9{A|mNa!(>I26_?Trol$UV*|$d2qHI4{QJARUZ7 z83Doi#y|;P^Vh1fqB?6_Gv$d8(oxr_Go%#0ar!I(9Vfb)j2QXL|5lkJI)r{W4y_Jx z1Sgum38TONxiU{+4WcbWPgT2LNNVrf)A3E&N}*a}p3w+@MS5vtkgf8y|JSZId6<;~ zb@=1Ippn1<>RHQ9@!;eI(q`#5>y7lLiEM6!5rgf#4Evf{gnTu!^-*_r{0J9hMVR=$ zxSHCnFrYTxF{6L?zIBl+w-lG6{g+}VB#p{k`w3BU(c*kae39fQL3-ZMn_)zj;u1oU zBF&CowqUaSBMH*M1UrrK1+R)~0G9kX(C8kKU45oo&wTznnY+wSRqf76k^^q1yR{~% zS?w26t)HAy`zoh!) z(vWK%a@^Naf-w_K?|2-sW!)kSuRJJEFo!JC)KHA)HiADlcC)>gQ^-H|?dcsx8=G>?&AhGn0$X<{jWq-(qEgKbFFv1{mO=bt5i*8Pe zs951IjCKgTM&H*gbzX;zSXfQEZu5XrB_oxXZoujgg}W=N(Oz+v)`Iu3ab&YE#)!FL z!ZoTo9$QsTI|$wJkicQcHg{P=&)3j=YY}QiY#m*++M9ieDP?Sqf5|I#9 zqD3c^tD^&OwgEVK2~mq1MCb@%4W)juSt_oTrZ(wo)~ELhB6t5{l57A}j)k@^3p{V4 zWZabSgYNmTS!^@rWZ-hRQLhUWs?xLz<{B!yoW~J&J^O#$y>(EVZM(0X1Ph*E#Yu24 zP+Z#J?yiLvDikOMN-5F?58B|+Leb(-+}*vn6e(7q#hqf=d7k%O>s_;#>^agZB2$zw;$%aA_Ej%Ou zz<^_G8{>>w#@TCC~iT;2;6}Tj2xR+m`MKPea{#?wN0nv&q zA}}Dsz1MIN3I$sw5?f}*vdDYJ*c_%2G_VzM#pMGSyH2t&B0vIdI5Gz~4@PnNj6sHD zu5xVv(rjv%U=Q_fAO!8{riV)jr+HZpy6cLgaDa1nl!f6jE}zgF=8Y(42gp4okc4fd zK|9{_3=o4G+PRa9AQPuRn2tRIq>zC#>Vpm0TVg6$yK zqM9p!;FCOy3HJQo#{ecXHoecQfTcP?stk}|8SW>45IY12iFe-7k0Bq!`;~}8=E_2B zPmSHB^v)0`E++JjFm6a6_Own%K~Xw^GPrab&Txn;eT?&NJJ48)+OdrQW(mDcr-8*8?&la2CBFJ169-0LslE=*cm;7=Ykyn?6+;kOKgWYbOvB z0_@~O>YW0lAa4*U^zMO>HZM?uK7wu>X9F%;oq_wJ2V?=IHg&~=9v~C?(iRDQyKC)u zDq({X@QF|eHs4+lvhfJ9^N)f&XQeQDER0Aw3O(R@JAFz5D8wGbI!gPP4WzHnA_xPC zWn$#HC7EusKD&VbPHA zmuwkn6;eQ|Q7P(W6Z{Ym>#`d6Bimwmb}E1(6(EpapN<*<0>N|0fjR7OP+q;Th&Uas z5S^w4i-=x^^qg9vgc>i(oTDvES{lmMo^#YkzuZde*Ps-3xuT=!%Kz~Fl?WSsJ_8KMNuR>7tf=-D^pb{4=m*6Y1WOr;>!mz1eHp#`=93|H=}%PDcVA?suRL)Pr?V)xk+L<4_5isg zvI;O2@WrQUt9kJ~Rns*Wp-xVh+87mkTodO;b;Y$&PCW6^-$;$vNs$27nyFf*YZvBtj=jUzy-v8}=eid8(SjQl`G3;2fJKeIJk1Sxk$l_lP*n zV=66vo39$-a4jo~*&5P`fKFnlKjl1RguJmaqKkqG)|IyRSd(O zULH_vR(#fAtH!4qf{1oHEB$5cAalI$@Hu>ypo5Z=W{VKc4Jl@+N~4ctSQL2g2dAE=kv-3gdtMCnI4=m_=}=(L5@F)tBwF<) z>?or*>7XTUQNJXAx6|X#-xsLW7wps*8retrs5=F$xJy&s%z1Aj22P3Yey9ca*6ax@ z?*BB@pSIJVPBOrtrLgiRjF+ur;LX6@H3jI44iYyE`V^X-$v;@BHCXL5SXL4M-%SXT-k|WIxt#7AJ-_9ey1uYEaG>LrBqT-{1 ziykY?Ho;=_jjlsfc)g0=q?`i<}y zkI@VCt7&U73XHPs!s^fHG_)oSwWo}or$QGn;~Tto$+Ry;m?!|vFv^e#jx5+NVLn)& zz_eug#qhLqRL?KZ$@F|@I+0;!MmUq-7)+bW8265u7f}TW072HcXwL>a&xQ`$n%|5! zVrQgp%Gd)$9&3*ht`5JYYxqg-cgZ23R2yglmw0e@@dxP=-{N@J$q#+ zg#~&%_--W27iWVRQWh`jwqw#|pde;>Kz4~9DwOS~v8lau2daoIc%t^=1$0C0f3msmAhnX!uPxJZof5@EW_pd z+4hzpx3+Z=kaw`Q`}}K)I_t`}X)wQT*hsgT)+%Qybh(y(bU@Vbuw2FEr)l(08s#;& zMHl#Ikx_xw^!7D#oec+<4dUq))5G>g{qJ;sb~=6=uLL*U@9SHB4g>GalB@!XwKo0s zHs6m3Kfhfe8Q)-&-E!{wfh^sM7}<)89cJ(T))=!%m^JozX)7uEmxJKe$GS}x5KHjw zuQ;;J6rJB+TsAxfKXWPmvc1L7rRh*5y8JE|+y=G$0=vw#%8vd_o2eYxZZ2KP7c{6@ zf-#8vq6cobMDO(9&V3RrXQJer99|A9-I>tY9VFYf*@KD8G4ml%Of?dX@f4bZn9NqjiwUs#};b^++Z4>#a!ZbwqOC(7wPu8c!P3++s7 z_ev@H#b2K2-#y*P9Td~Sl(4LcFz${kJ~*}BKTYUs7reVi!U~MGK7RP&?D=~aA1gqer?-0ogP?O%|A zdRyNpP^a&bUG?chC}IDOTpGdPU@0ptGqCtLTDjom@=R)I+H=w3D~`Qhc)^fN;8 zUmHZn4Wukt*1F-j1PZIe03fVy@0J9*S)`4d4GJB+I^ozVe0Pfuh#uxfeF|?43MQT0lfXKiy?oo zwC8D;ff3$%h`Aw$U~n;H>}I3O@^5 zZa%)Q9?xT3YCkvrQ!`oEVI;?VVnaJs>UBt$t$je-2LhQ5(Ta&J{T%fKL5J^?zYO#B zzvyU(3+G{HQQxsLs!wg3mf3Yjb68IAm{)1|xR6>vK!ce?P(ALC(|guUZ%_Ar&d==I zM83pyr>RM@;t~YN>1rFV4qiOQ}wU+Hx}p5U&hN>zvPsZ7jpLh{D7E=oBqOmYwU||-d^45gZV*2 zXyGvrF)cxLZ4wDh?DOid3(Zf`b&7{Rt|zBeSkm*bbFx zAIHbYl2mql%c=bia#dmWIXUbd51JT)tuZ9LDe`vc^vf*#!K$?gi~lfQ{}Fl zbkh`kMG>nQ93AvbJ}7bLNK16WXoB@hbU}z!*qJfEQEa>FSVtCP&L=NK8h$S`^Y)s+ zpKxgCSWk&Et-Sg^)UhfvnxfM{UxTl@stx=8q&6D9(0F2~r|7rep!!s%|ADl!@oQs~ z_g56`Ix&n@qZpGH)u$%YD!fyZhL}I(rnZ69;&&;HvHd~aP-9Q?C)o{TIjS7A;Y0rS z-IiybR8D!$6RT<(WMP|e+~zKWV&_(IrT3;Yt#5FN@{Pt4-q?84iG0%z@34Mp1>QbA zfB1er=qx9r4DZ4=sCMxlyB{0tZ&Ghe+u|moX;k}p1ghX(Z6fUlEz%4{>f(_<}rs@`b4!S=@H`I9iP-4Yctb6cwRpL zgFKUbl3!Hwu_e~srr=jmkt;hFJuPh$S6wuRc* z@bwslb`4JIoZYRB&I02^Pv~#&7R-B;z@XhC}D0crUlN$ z-fXZd#JpM0PO{NubE0I{S-m6j&U=r;bV+0PzUHgUrACR?gJu1P;FFc`2N=Kc)~8Du z*6Ca<@2`rR>tWNiLs{G!KATUd_&x|eRnt5>(=72H|0PZe_T0lun_PK;f<+QO+xQLpWBJTg{_> z6ROJ+reED7rtt%mMIv#bU%&C1-|2Oc>Pn$$n|E+NS+IjGDIayqyVJ4=>us|n)wW6z zlL}4s9dRy8o_z7wuL6|`E$&{K#~OKJ?a#lpM7AgM188(p<-(pCUs;5q#5oYb&d$3( zXE6=Z(7c+TB^ve-6yMLpCGx}upNq-doBr5U-Qlo@c&8cbA%3pfqrLk(_6798tzpA_ zTA#Zjh4p9snX3Gsds(iQCT~<~nzsE=Z{$HXXFcbvo54HQ#C#90>ARX|o$cP;Y+GIG zKpMPmzP>+ah+U@fDxcx#ccUJf#R+6@XQ12<)TUd8J(}t`iYim)Y+7j&kz^;s7q*qL ziXlHQ>EMX|fRa~uL^F8W1@(U!iBVVxWUNIACaQVbIjvQV(6Wk&FNFI$!I>wL+f->v z(JTt~iF7Ib&oz$FNwN;}(sOXVGuZ1dkq)g!fBH@Fk6%=i#84%f=SgT9xYXBKiWOm| z9o|>5V^kQP&Q|;h-P(Pse@OCODq?J;l4BtW!w8o%t!|;efASQ^`YHZW{aBK=sQI16 zIdz!^Z;#T=4F6BhHPTCmdx3_kHC>n4ppnN9k*{P=XkxZPIzF{A(0 zDWkw({rIYdY{I)8wA1i2yH8#d0WM;pmxb(a>7?f(QmeC~hE)=EEK3?%K3AoZzHkl| z6H;IGuzVBn+m*mW;OALk6)JWQq8YYeGey|2lJ@O2!Nj7Z`f>A`)Skuk{EzuF!bYF( zzu%BsEgW&G)u(GiefWISD23__&iyDHq3mn$t=g`}uo!m@q#vc8T`cR~E0;5NTnvm* zzCdIoo&6Q#PjhXCKouLefK=a&F(au#>-!H<_80QS_J@X{v9HpI!CsArGs z47K>cUgB!O+F~)gF?ZL2t8d_k3#9Cd7ycAO;7GTBj{1B9wy$l(6$$K*X8Z*VXt38~ zCjWyDN5Ff{r7{+x88-xMiFjeaEqS7gK%@IwZ#Tbg>lZ$jI_wqu@@Deak1Ig6#M0TN z@Ac-yr>o&_%#D&S20=q9puQ{6`_enyx;$npSw^U)W5-;)-yz1Z3f$8*Q#;#<08{_a8 zQKyRFyZ{t|EDC%beKlCzQI7zNmXf9-0!I-<>ur#ewg5moIaNC)yL^C9JB5;bvaNi8 zp8tE8f4(CSz}}XO?Qmb9fRg_2xdYxy0@ns9vB#ydvZGkFI;Le%Y`$O)C+wkI9lyO4 z*oqZ+b{Ke@I{f=OI3gAJiWP#EJA|$k1gOBm_6j099RZSxcXK*~JrqTQI+JY`16_fz zg-SqBSn)QSt2dGnf@0$iK(OcXNCqg#cJ*75Dq3|ZUK1!ODWNc4N-C*J>cvVLO-h?GHGi~PBtI%@vM=mJ4SlT^L!utb zs2=Chheq`UTB##tQ3IdCovFZdkdjW`&Yw zwU%a$m1eDzW}UBQeWYeXs%B%cW>b@9^N?oCf@bTEX4|!9JIPQLKdM+(t5|CY&rGYw zUaQ+^s3%gZKUHg>SZlCJYiLMocwwlIgs|&+s25jzj6{2!QG0@4dt5ZBy-Taa2@nm7 z^x-F5G6ct7#l3h1m~ldOTB7PshT5;SJ8*SYNOV>ib=LTG)@5~mYK_!f6X3b(Z269a zW@rU1Yi&2_>{ty|(rORz=md|BeD(%lVa<*yQ1Rm_c&XlE?Nfx}9?X8L^UD`?5k!BH z6E<=E=|N$B5K8;zB5cn0YcaQObcS+l^0$>Z)TM72uGrvK&`97b-6gG|jnQv_;KmT{ z*wEu1&@~f|+~-RxJ=BFB^4Dkx0ze?7|6)v!c#6D;f_}~nQl>7b!YQ)+c z4+H^Z?mFB#i5$zO)9c6>0^&t?4(W(HPi)8QjidDMiA|Kk^(;D>qOO!LV+`c1S?&+i zMIp5tQic-Bv?QrfV#<@rTl#v0lTsLm7^y|n*BGP4z(#f+3K4oDEoT%aXSgwt6c7Za z6w|MKK6Kyljx-Zk#acg6P2V(4+01XMsZQIX#MrWV$})<`&>>a-HPTxNU`uM?(?wRB z92H=on@5>m^nG*+sEe94RuULA=0H6cyVJFht;R7?n0b#~nJcwi258j6>rd5zFuCtU zEPn%jCV)Mz(m3Y%3@q3*ph4TK#MDlC+;qys9Zt5yZe(n1EJ2;}`gD5UDCVB^hecm- z#=S^2`Mk9_Wz#QH8wVdBjCZH?&6o|(QYouMbsJkvnMH9-c`=#$q$&H9m{zXL@OG<6 z)JyYvBfUJBi=QPwv{Jokh84Rwyd(Ytai4n@tcp} zurT`)79O0_&}gbvH4XftpQ$q$ znQtvq)ZC!6SW#QXTc6D+(>-pvfO0I38gS0NNk(~*_zx{+Yn)Etx*5$5n`FN>qrSAD zs<&PkUL3iJ=!vq{7!IfECs#dX60nw$Su_$?SW2C1%3J()zmsUp!MvE%@|C~k_G`n#RM)q)>Od8$f(ek>J2=C)uUES?^fX6}Bx7JD>)M?CDF z%1RiTMro;OahQ?;v!T+@ZQUqo`>9T)J1&fmxmRUmU0~W?XUSeS*Iu(fN6up|k=8!c zb?tQ2`b^Kk#Kpn%or77lgZXC%i&6*676&WOpH2M^mbZ@|;;*mctUo++$Y-N<4zhdn zx<^;1ceZjZAz9^P-`ah8E636&FIt{BjchpLLo?*;-5GuWeZshHP(pj1ck%ooh^Mc0 zo_d;W?v+OkllBPh*?X(>z7i_$fDvQhs06P}9S#;-)dPpO{2!tt#$j~{1`aC=P-r0J1851Y%G z&hxXhPDT98Pt2QG>@M~US88!|QCM<&LKLGoog(1)HIdywuyK4Xy2K?s!wO@EHJ zCW=_Fu^v%Pu3yZB3h4Af39zGS(YHITXZwFtwxv19`O>LNeeiJcw(u8xs2KpYHR&FZF*VrvHEFpa1{;N4*9d0En=zcmP-k zfFYc;&B|yC#Arc8U+HzX1#lX`wCaTLLc$32t7wsjEMe~{gxwHhhb%;77!c@Rvibk& zD*d-B@!$U8e_kRr01{w?g9iSm`^R-TB7l=#BUP z^B7YiacR6hBJnx%GoIN9Y%K>S!ogU1lF74`VA?17D;VD! ztKs}L&!!3S@zz!&MOSk`Aoj`pwP?YpwzUt4&mJ9MJ`$l(pgd>6x-wg8hCC4&*yCHQ zkx9WQ8k2+Y|6tt~W}$lpTy=Nl={atk&-I@SEz_~hEdvzh8K{d_acYolQEv+voj z&2%I_FIH$z^Ue>|uPfbJzblU38?&*wesKD8*eUkIp+_SurGpx{l_iWy^SKxfXW5)S> z(QC8he98A5vwQvnNg#N!9CXL!Vg|Ly(RR#a7$D6wR`I-E*^v_1>o4r4q z8KHugTRBNCm%sA!N-uvG*X~_zm-Px>?NrUUT1_S1kes; z;7jzilX)Km!bmc~s%jk+9}j}KwK9oJ`#NYE4uXXuGfAGRb<%%72$3AhBzx1>$$WVb zirBHhOUQ+x@s)T`PvPxQ+*Kq#?2uoPe-)apM#CX87G}h*NrkcN;x~B}hIy8Cr?;Y8 zFuI)ok!&{oOka<9!(o(bWH#fbTCeo?!)ULeZ07U6-ust_ACM$DFaq^H1^Od2N-Kx; zPJf?@^id2tGKZZ@yneT@7MN8!E)G-|&0y1zlS*SUfA-(gu)r8o@B43Q_*(Pq;aD>g zhnQKbuFNih|EG=IKc6OiZusi4AC!FW#nS)VPZOE{$20`sb1!4l@Y%9Im@|JlfJ7Xd zh7c9*|Col1o?9z_rQs@y{XeAP)@p=M5BFN6==8I-D9H_M8p@t+Vbc(wXC19X^L#x< z4V#9sTFl(-IJzqJW^qOa7i|ecJ=~TD7jNta%woK(H-d!-&*7&~=XyzP(E~_rW4U%?OI8d*7Zk`V7ETr~1 zTK--u#nmS_?@>C}=yANdSX6uWN2|xmCFzhS|8hF)^oTzdYfwm$WYN4e_1an=Or~>N zT%gXx0jDb}=4)M+JR5^(Rx0Pymu^p&JsgbI_Nm$ZUiTwli0RX*^I%Hg(+&R2x`Va8 zIKzYkWc@LL?b}d4o#y)28xb#6F#^pp=le^YftZ=wSF%n&v5$~g1m3J~AEZ&9YrJo{ zy4o*#?`KB0`uZBX=o#{^q|aD-u$u&HKYd zy3J4|r>g&sK*`uJkmnW_f!IY?6IsfCtR|I3uojKLC!};$pm}Z|^MLuUMHm0Ij`b6P zf5sb`JpY+s_N3rvqSgNe0+~|`|A9cWk`P;au&^d{1#=;jQh#<44 z0(r!9a2S*sY3Y|xo3Q_dz(P^^%6NxK#>#we`z}gj##c(zy0T-tSOmTps{pBM#^4MI zNE=W~Gzme-4g2`82=wuysG}OQaFIW=q3U`t52h+7!!va%Z_Adq)VI9z7Xlfpr(7M0 z1OGxGgVIZVIrXkr146yNZk95cc=}+GzYs{eJAg&tV5B=1fuu)+Dp&+IT17dbziFxp zye_cR#v-sr0|vq(Fs(4~<6A5OQxvqZ2;3y}pL<@rE1s&;`rjh(Wh3Q0=#+P~u0;Wf z&kHMfin27^^-!e2-JL~Ly=9GjYS|sl#3J=fh`78X_bQd z3pM9^KC1~ySd?}BXkszN9bz$!M1B*YXV+o|b=;mXAt#JI34{e=)S6cyyw5e zPjpG+rWM5PZY$!oDaCM#(NZ@FO1mW4%2}P$4w<}{x<-|+uo*P+`GztTl%jxDgN{i< zJw6jjJyVt-DhhHt$u`0%Q2X$6Eaqdp0li#-29NQ0LPM1vk6(cn@zi+A_emY$=I2o+ z2OsEBAa>GG9wkTKNowVce6fBW1Iw;ZG~=TJvf$q_UeXZF9#(c7bfJ8F;Z$jCSiTM3 z80T%wRCJC=G2RNV#Y_W7S;dqb<3%qmzS~r-V_&J4a-8MyfGJx+^;e|WxDAfxEd5P& z8LDK=mU7UHim9d?tvvRKO>+()S5uKpI%KS*bLGntBYgPv+4thB7p(8=WLgdK4JWW4m%Si7P~HI z7xjihgd@A{jh7m8r96;}alL{F1_t1RK>Ir9_Ki_-)N~H&9}w{{)OD{po&l169m%%D zsK(FoDAeEnys1A+AQfB|2)g!Qo4DxpV`2>lUMB(+09cuEf4%8`wNC^dn@b@3ct6Z(#xR_6CU6`Z z#Y#v9D+XXB=AvN$SqenZ!Ck$O%`|0Tk>1~Z9u4kVZs1r`3wr|m760^?4o{rb-;6!S z5zXNuja4zc9H)&D&6V(jYPw%e5P_=momYS9fATKM)2Y_fDEV#pqG77+iCD4n&2RHO zi|LvTj}mt|N2}w@@x~TPdVmp99AjbJl4z0mp`_6ESe<}t0f@I+n0m+=JNHH7ER_fn zl)Wb@$M>%Hfpplew$zo*18W5R_fCf=Q}qiU$30Uk;Milu0_BLe_5}lpUb-_7)8qc> z2^cd(x}P^{9le|2t%Re&@rF`lt8U^wzOL$YO{;fxBzr7<4x`dd*O*nEdldyO(Q&d> zY?udc9kol{Msk~e<~T?V@m(FIyfN7j4|N)Lk2X&|mMxdTytVfe^yt9%(>}UTbxXJ< z*H-9azCV(~C|d9Fp%4D+n=yE@fSID$Fz2^&FZoz=P-H+V%of|R<7E*EKr$(|f(`?? z#z$hLJ~OfMy86g}-wUfHW>0j>yHeSS)(l<0VR?t?W$cVj&;C#ly`6K0pp8aCWb6Ul zX2@znilDEETh>nxQ`ec?K)Ba9MHiZCf?fvvtO$HvVOn&em(ARm(C|SH4`~c z*+qu~@ldqLDEGVz8)kW{vd<9!K)yd>X>^j8iu&ODf&0ffx$w<{&mXROOz*ZXVq!6S z_lz$NdIt|THn%S(SWHeTf0S;&Z#7xGi>dBuz195k;I`Qtb3<&5x#cpxxq}qPL*k;0 zaJ-Or9gsx%hJ>?7-fkpB(vV!zpN+$xX3Ky&*`FoY|6m-ie+7rJkD0+t(&fOFEt!#d zR)7m2#UshZK`XhtGAPv7OvC3QbZ$K~pib4_4ArfKLd~j#f+b}zIcyXN4GtLO zJ~xCF5@G}maoqxdkytNlDC||3l#na%3(Ds)h$jPbH=dOh5E7jUViXENoBWvtvH@K1NV~`X@=PU&YLVrJ*cifA00|6mVfp9>cQV3%a2OyN9NWOq%5>Wi!f=HFc zFpU|VT|n@pa7gDqJjZdRD_|5tK)x(P3aDZ*2S75YFcbp?N<(m^&dArcpi*U?#D{Tg z{;{A}XaRjRPG-DvHQLJ%&`k|}F%3DNig6T&d`gOi$3&9aC9n#c5U)hwwm+s9w)swA ze4ETu(Z~E`9Rj<6JSt#@sl_n??aAfCS^UF1>LHS4P^o81Iw?|dMiCVL0WkeYVgESR zS0MWo=*zG~l}Q}Ad!UC0c#`+RV(CB+4#*Xrd$P_!sFnjI0|`23K|v`LR4EWy{BSC` z(&M?nU2ceTKcsConbHnd!xcAt+Ss2*QZ7D*0ST(6rJ~idvYCavdJ7R41+gMQkx~$@ zDz#+>#P_FeLyp=$5cgTxB1CB|I;C?_3c!zJC<%E~T>J4Ep%=+n`MKShCXy86SFZ8ZO z_5xcrR6bkUFN@2dfMtO5CODtlisBkH#bJr2F0h357>-AL~O z>MF{9B?$MWHOhi2-U5cHPjFSLI91#t@|E;OnZHHJW?|W7VJUTy{K9WOARh!rlL~8T-_^*wASy@F z3tn4P2zyt&xm2Nu5E9s~xQn^UIsaHbBVE2=R4HyL_j91~!~?ptUipByN+_a?t+1Sr zPgivtL4H+oK>w9O2BBMokY}jaa;%o~sXmCWdiFcphEGzS!T7PIhCGldXD#okrG}z@ z4bOayw-OKxsO90UMW56NebVtFR)5YQ7{goU*Qn|pQ3;i)b5W}Gl&M0^s|0Imh0fQR zpVWphRK_+cd|;@HWGzk76pxs%?~boW5jC(X)uS~VHrN{s`Q-9H$>$c;7tc4~7d@@G z(pfietozj1(Ad~C-`H~1*v8P*A=A`l+0^6H)c2`rps{HvLVRA7j~G@nEF(UF+dMAQ zY<=96NZCAVDPIX&fuV`!uimh)of?u;A;j1zBHJly)hX`VDVf?S-P9?&(0Tv5 z6T#Sp9lKDn>QeFTQcLa9XzJ2h=+e3F(qrs4knJ|I>NfH1HcRccXzI3F=(f4;wq@*j zB->+e)$_!+=UHlxV^fdQLXXQec7(atO}5v=s@K!E*DJNxyQ$ZAq4(W&FOsn@K(;T) zsxQR150%;%j%n(PT~iV>OWL zJCL6`P}nq3yfEPBj$nmWl%}$#$_(lQ2jTF+8ZFl9ra?{rL0INsOC$^F#9*hEWBEL^ z!*^&`e`sikV^H=h#mSJ(xWXhO`xuGrgzvEBqv3@}4vv#y^VQ*1D~=Vb5feB0^T3f` z3lDajIJU1x3@IKQ$#NW8ebZ6+cCo{L-t$H| ztZY#T0i2FD@#kz3>8NOq#g@zEO(N+1V5H7^v^Qf*n+)vDtja;6TuiLJMtpn%=A@b9 zcb#FU7?}yil~M8GDk*I?$;JC2VJHn_5pnjL%EGK@Fnp$EM3W6c^ZyF{U z6Y>GDL+N_mAd|}Z{pG^ zU`t&TLb;5E6>9_8N``w@-VP0{sm($Jm3AYro1jAx}5(!o;52wxTG1$QCE(EPst+)BIda?fSFVo9D$ym{i%% zWVm<)vvaxolX0@m5#@h$OXoyPwg3vd^EK|hOT$;`ztfuoiCJzg+!j~*;#m0K#nc~d zj(+>jbb(Mf-ImY(w{EHBBTTQ3>*b5>t*@c~?Dp8@>3*Z%Ydzdr`)9XDbH#M=6=*lu z#FPw7_1*V3@Zaj2Bo=o%g69(O%>5}Zltytfwf|Ay%<>_dtu->jJyk;E(tZ9%ee?0- z6VfVbLw+~vwWxp8H#gR^bTn=#R}n%qbUCIvDm*{qp>i3N8u&!GtO+}IA@fP~{ya~T z?W3PRNqH7szk+z|*3YK!GL7fyM~{)W8y{V~3D%IjBUMuYq(q|f&ios6i(pn*VLmwI zuWk=M5YIvDWlSiVSlI~pcejVfEwN+WI2teW;6rZu-=!|z#HCole$4BK@1)62x+pcO z{_gf@80Oz)QvZ#>77qAITmJ6$D2TEc%Kt3vDj)v4+q1DAkUQb|=^x#mht@zD2yO~} zrc$kLB(0-<&b-K@0p8l7qd~!5lH(zf8Li`CaaAr674h@P z<8Su~NKZx;?r5Kksc=P|4F0CK!!sfxye9ulxx4i#f!O>Ir&n`XNU2NmT2Z(g!w)^A z(7nzm$R$;*sv37~6?n7Y@y+?oqSue8mmaXkn4C9DNQ{8jauB(T*UBPuan}T~IoC54 zAO7X zSEJ_+`F$XhHn?2e?L-C#0W?FfQ*f5#9tS(_OgX)>FRNInS-ZcSSpdSLykq!=%}JUY zMMt!X<6jm)jY)>fM;_pkT>PrBgvLTQ-jyZ zb70Ey2Cjkc!R;P+P$fdLsOwn|h|C`9iM`f@6ocl>xD-`QYlz!r4S)WuBmy2>1seEJ!05h*+*bQ0 z#9-+C@)3&-Oc_pNH)LSp9zWZZD_$wp%w=YWYb1kOV|VT2e!W8L}EfvMC;i!)K3&yE0Cph1B>B zGH}_!LFrf51UR@Iz@T`9|H4A9)tbgk{fIGvl`Xft_(%PxtRNuH7^~9xM|6`-Il09( zj-byUtyZGt6e{CYc0u0I_ar8v5V18|((y6fW&QWK=G%yM0FjcBcoZj-nziW*)9Hqq zYL)BM3Fcl%5k>*85N~c!N-D>)*c=zNaoP#whw>qk z9T(kd_bX!KhSrY_dK$pbE4;sO|M2Ih%0dH_?@5GzZ+>^eat{Lb!<6e8cZuX`OcwcS z9}-;M&S1ziv??jYtj5lyE8A5@f%J=J5IvM=CMLgFDC)a|zuMb=)cvX~%Hb_#nT9cL zW~N_CWdQjIHF7xEw2cS6%#Ad)s`z zp$YG;Jp8_Y&uzEqP~1gz@|$`)ateEBL?0hJuK%bs!N;NZV0T(fjHwb*{A)^CAmOzJ z#MFca+Qkm`APzu*8Vn$D5G71debD97%SmV!6SGcjQ!DK+WpxpN!}rEO@DTuUrrQ%=Wzk z#w$SaOC1Pps88U%u;LDXq?)2@wJO(zNv9Z$l6A4qMQuTl?dXS@lTMKrJ{f{ zX1>P=DL`kh(7{(41PW~p)0HEqB|gpDw!IC7wD}MzY24p9nGJ=;+soqgIqx0wz>FLx zrwySud!FB9md;DhTaIt`-;v8M6WqP%pu9Z@nemZ7a>9d*Cl|T~_{!G=d|u@3KcYI6 zCtbVKilTkHnX&)pE%d|1=%=M=zc3&9Gg&D2!}XIqF27X=-K)9zmb1Fn<~{dsK6ION z5pf&BW8|^FRf1mRJLS!VMCfa{Ova7DYqDIdm!)wIb1tmi70m?xiYnI08NuEV`oBmxc$#D{$f^j#xK`( ze9giVy~61Atxeh}OxG+S;Gh^&4goX&FO^#9$9@G0b|%YsMYG|>7vZI}5oMAQ6=o5| z&zzEzBQ!I^%TN&?+;9y6k!@htca*-ZV){Z zI9C_-eKu<0B5H{?dRa1hB|l=Lk7^xTx1x;#$pcfS1Mxs~D_tn^EdXK1P z>}?n|1fgGzc6}7fVD~|mCYFCLmQgK6{wc#Sgv z1$;t($kpf)2!#_2gFO-n=vs^!T3+L_>m_==O)^@In~Y%+s0-H+IMr}j)bTnoh?v6Ks2&}?%${|0>twbxI6(Qug9;L34suyJa#S6QTwg}EaJik zGE^_oR9AUg8)yK?1OYe~zU5!2ABna6#eDm04lG|4;&DU3uAsZCs0uddR!^K*{W-{t zs3yjO#}V400GqBhy6V_PW1 z7HVe|xxTvhOhF+U=q^`ei;McZilV9lpQ(-Wt8fSzGS7Ju*M_1xgj~7?;!&RZLJ-A*8A9bj9j?flY1VU>ce9?}q21c(5b-FYekf19((6d)tB8C9pVc_{_HOgxX z#a%@;5Kx;KAs${BG3xoF6xB`<`pan-*+S7nJbYAyo~$BwD8ldMPTu39HYq~Q)b=C> zU_(az<#3h=WUwe|U<>t^@a+2`4u34C`0IacUqEn32w8(t?P=9)ms9p`P>g9X_0B2rY2>Holb z-u8ao*+$;$TPSP!rt&S+M-DRS5R%8Pg6OenQ~yow2f!E*C=IxHrylIujXcx?!=~?$ zdwDF#UA$GcwJUQA)!y0-6@7pU@A2V{)pcq9=hxiHN<-H=DAZq5dVIsTX$v^=pdiu| zcsSrTmnV3yF?T`g8~B^j%e+nI8ShwrL0lIq^q2`SfBnzH0pb0<&@+%{gK=GH-C)cRkKBsF_a;p}hey;i zIPG63B3{*l<61xjuN^XV7=UqmDJ#Is)yGGKMtK~O&s32;$8}FGAnW2zu@>N zLLrf9Ov^_$kUfr?-RtFb2pw2O{dPg|@Cy-4L}4{bPOg*p;Xecxe7Nq(9{`1Je+=xR z*2s(3wovXh3$arR05BJPZ9#ba$sYoWw~7q6o{4)dRkPD6{qENO{pyf&Q%8AW+^sxO z1$Gxgue0iXZv{oTkGf}QfSB@MrelGBLc*g$!VZVN-0}xX;!au%d)T%EL(|CCgEfX` zNKJ+68`EFd=eviYJ%XeB%^>7!kZ^N1U)8Gc@L>Q_hq&hta6!l_EdY5<=m{H%@a5aT z`FYG=N=l?nyA4nroO!uCb5vkfiU>Nh3EZ6)C}BN?&b)zAUP4{JmypMlBVMj(0V}(} zh!Zg734&98fFr=xH-M@a0O|z5PZ{N>y%2B({l5E2aUf-UcQr_KY3J|~+>5{7)SxCv=4Mx_x%i#$z}EL)eoDF$ zUpl4leoKEmWAk=qbn~bGhu>!|9K%h8d;NZ*fZnqUF5kR$^5)OLM>EZGw9her zlqhs>;(?-O-+zyX z6D*UL^nCv^JASo|ZjIL-gf2p)=dhdB6kSOVKyQo423*JjMHaLVGJ# zbhWVa@%!T4iO5nYc5{li#nQ!hqPSAdQ`*db7a#qT(z5~uEPf&+@FNvTd8^Ym;u#X= zbQ#xKQYuU+rZUe}xf6jJMill3%-LqC@~#`^yDiw$pLp$-uHU2+_vs=FxcEA#71LC( zpib6f$)&_PUD3M0BY?>dRU&NcoB2Y3i>VxLMr?XbB|CBDZ+Uj43S)z-IDM8S#z`N2xP=Xnx2K|@~F zx%}S!%s#kJOlEeXfaXEQ2H+(>sIPc0zRTAYuWAc97h|E$3&YW%}^2TND z<-V8k-Qowc4gf7~%i|AE_T4?vMig**cJP^CM+f1dV26K^NkIGC`q}$gNIh$)oh}m) z*nCnglbeVT-qf`%qrvh*83C}Y(%YdbmKQL5NE}dt;N=52M=8T4BGl(ls7wIN4N$4U zp+STM%{}t5gt-1`Un+_#We}6T;#dC^hlg}z$ekb0{k9#NVuuOg?Fd*T;5FEXPBN4C+&qS(q_s||QvuxN$K&<(7yxGib z)lsbLEjD-TeuY0niq?ICN#BBpB-*FQ7CSX+7MB*hR0#zqgeoG^bCK^JV@?PrcrOxj zLt4Wg@Jj}ye#h|t;3=*3Ut2nyIv8{T^S9Rr^ZcLN>;gyOhK8Cu!aN0bF4R1Q$_b@M zILPRlCBW>jmCAT9r|?KiA<{Ob7Oa|xH3+rI`R z&nQyPc*tJ!8urNc-yKJ!E3jJj;eqMemv2{dZyZ?^OUOkJ6k{4Hl0rTPs_5?o ziKD!2V7v|{3<%~a49D;z5Uf99|a;c>& zmo<%GB#agBDIn`~=2_7gkGD*9sRR!}ZMCOz#PtJ!cgxB}NQAZFb27+1yj-e%qYv*m zszNzdDs_XxF#4SGN?O#wG3O7LCOaebk{9-mcb(zU{Vy|sb= zcK8i&j|lz3ZM2(c&0&S;4Y-bBOGac3gbmNkKScEuG};L|h@S(&31NV|#C-8#Xqc__ zK{q<-+?h`_kLWiSyAwmt;rwpoj8}mV)Mt_iy&$!89cAO)-!#JYmJ@s)Ygq0xXY7fx zBWa-|ASP?XMok^o;SY6`HWEMXG^{{OqovXg2TDI_>CxdH@2^x{n>6(J}jY6g-rc#H&yJ z$4}ga*j`NUJ>?$+1W_|hle=%7c&%9%>KC9@uY%~@=o>qsMrz`({BX?RRN4Z=9cL!v z7~GNL?eXw3rhHU`x9ZMx#MS@>!eX5ihO(8&Vs(JR_+ei0WBiFDpnwuG>4*!EihIb0 z2GB{FM~Y>k#h8|F=PCAlnET&`pag6`(eB{M%{RHp=FpPk^t=icwK7+6yFf<;4yhq; zAw?N$U2d}4cH!yJ<>LGhVp6f-ehsLuTMl_mil+Qbj6@1QG{3L4PcCRf)aoGBff1%E zbR6{Bq(|86Ioglq+fvd~>hz5&PSy*t87Tps(4+Qd0+g4$Q-^|NOHnyk zLYM)aOjfee&GYy^R*ucaq#qT(Xy^PJGmng=WH!rhl+}> z-)w=uDvc)`LKl_%YP7pQ9*6E8?(UgWZutNl>L&{DqWQ9vaJjtjpL;M)uTH!UyoCnj zVwx^8$x;vZxNK$9;sI$AhZt=%1bG(r_gmeO{hCaI)Nykk*2|>v{WP24xCaTn5j%DT zC&b()pc4=AGP8j&zvmI*^Ox_^JgJJr)n-8lCgO7KZ*HFllFgyA_?rx6y<^ zBWJv>eE51&S}^We>8A?edZyq%-9)Z38SFmDQLSW5zS~h&*1a?g4PCHE5@aI~iJhc< z2(Iz&McT=s-BqB=Q5csK);_UKaTwNZE1R14KE^@3Wt61(PYXkD#2LKMlB*h%&-`c= zH0dyUakH;SY2D}1zsI1QJt^dKmn8*M$jCkXPN<-n-wzBu3NOh1rg^f@@#()Tffpo0 zHa-(^U1$`NVqsS@@;j063?r0xP%c5%oGR;dMmH~C{Kl+BT@VKrMMz;8RoQ9ew>Hr! z8Yxr_f2+#6e@0neEW1@G%`TBfEhSOuoG<%>sC4mP`=1%espsSOrQ9V=^XIOywk8;k z8cA2HZ=pr&Wxte44G}LqHb|AZ=P1*GcO%*^-Eo;=SbNdYD$IZletE5Z{d$b_0vRPO zM8N8P;xxa4Rwr|VUow_1HYYn3BQN7k=NZJ_vvyImMG!AOZs|`zgo2c}r`y#?bbMiL z?3x&VU{`#osPLUz`rA(uJ6Ldyu6Q!>!W@ywhPl-xTDRcE-lti!?`U`si4)y4YNjNK z=wg^;<3$f--o3y1G=bU`49a6=?Rw3vIQ z&qWusdr*bPex?-bhS?;{`0hyD@`4T%Fu!IP z&9>GFT-4#Q18yMLGj|4Jn!nOVrk$D;VDdB`l+-MfG>V2@TVctF0;ZvT@r9POLc}r3 zo$P92s8?UII{jq7&~+^)FA-|X$f*n9C__hYe$K?F(-Gu;A^)X*rm%tABqM93pGNL) zHjxZr*0M5wU~RXk;I`JCzfnad#PC(GVg7h=?i4{hY1C6v`OlB1Mv3d zgG_`vzrU7ILVsdpsEE4((+L3K_RLHDWM?#!!hy#k;P!fa!lB}>8<^PD7m0brXS#=m z!kZ8zjYoA&=Z6aXx;Q6(7WnTMeE6d2j1^*Bg&8!P;(e7V7L5qdW8x}mvZzk!c^Qdh zr*yBT5+H&1GL`w#9dRAal*vY<7iV-6j>fk>$N`>AlTuX-5&M^hIn_+9so@lk_Tm!r zvtbG(k*Q(AjL%Ql=%-19X2T<>5*5^MK1#zmFaNEyo)s<$FH7AGl;A?~lpKlTjojsa zfms!VsBH#8)cFk)asO-+T#vaq$%Lj$ujOzp*hyCh8om+u(lfbtwGbOM2=Fm(G2pt= zg3g?#{!`}@_M##Hnmm~=vG}Fz{n6o^0`KaA>KSJtiD70x=hey(TJn{709W)@ibZ9+ zd5Y_4(%zruh^#fOK7da&TDOpixFP#WYy8#MI_CzfobC6$3ATq+)?cck`?RfJ8yX>a zlfSY>P54A8ZbqsC#yfDhHceuhDstX-A(e#|v6ap@`m3S#tk-=0l^JrjEH4xkjm)>4syp6u~mPqs5 z{^fB(fvLw}f|SSY1nz_vy``!m;F1#wMiYq)Cgr!Ipz!!@{kO@4xBkbDU$%DV2{1vi zW`baBX<%Wk$vIBC^#n_DGEbd$Yd}gry|38Z#KFl zxlg9rV%o$F7+`xrRZBDSqM1wfkmu^IuP~G4mwc`qoA3$pioB0bGh#B0ob0{dURDrj z?8tcF_^>bm(F>A)vfA8CO}c6?=(~}8eIq$;A~`NEDL$_&X)F1u0?3VDd$4N)beEw{M!tsfa#W9*Q-N;B`<0$OL{5W?%3I z+?AXgU-3TnUvd$Q zCIo>zS8-#6@oA%HtO7aa_W|uc{EmOZC!3meg2k`>OCqx@FLCKW>oLPbDzviTrsSM- z${s)7B&*Hsxw@s;8_Cq?JMiWOq51JUW;kk2RAY47joTckn=K5lpXm(10ygNNBCxkD z>==2fRh2)0NldJp*(tv5yODHV2IdO{IC}>am6gccok;)*cT6){RQX-0QzJ`E$s^1t z4*6fx?Ec%YUyk>NeRIBT^!n`e$#gQz*IT+r;NHK1d%W3tgXYP?z8Qs2Yj+Po-Dq*l^mXu0cVkX|@CII}N^<*z~e(Y2S>{-|J8^#wV=&OTl@9_HEBbckjmiC*pfN$8NE#=aAqI9SH&P z*r#B!oyBB{e^CrkV(?s zHG!FY(FE?I$W(5DUjPOBge;8{KEgq_B>yJf9`d=#vrZgi)}2WNr6--$E~VTLv*omYNcR42LINdUCHVdQ zE#RRZavp%YaYe6BFDcoT`6(_uJLRjMZ?&ca!sX5X_zvfsH|FrO`kS>*D>7Z*EUcDK zsjkua0nqXv*aZwcfsg9Dlq{NdD-NW*b^!Dfhj1W{C zOWy1xgvC`M){r*6;@rfahf^6;tJmKu{TtDs(d1}yx-9Ci6)3qhBibXs)r=MYM+jI= zYKr?5YlgVaT!7EoIAi#onK}?D>NrTMxhM%|1EYTb-g+O*x%6Yu-A|nlhT|nGKk{uI z_e%t=8md#lcnJ7rBu}9-fd*2(#)e;IuS}$`n&e(2Xq@xwF{;)^)O_HKe?(0F1na7o zzo;m(;i?=8{dOOHv9T=EhSP?xhd{_?w>nr`Q{S>*{C7GI0iK*w9gt`a8=&=b+3Mh{ zRR0bHQ9ToK-4=ci;Io|7#QX3GbKS2~WS`m+u5F*DMWq0A*po{G@fexf&ePZHY{+gW z-+cQTF=#=BNfWuKbLvKSpBLbNi}NTsA6||wWZZ=X zA&(;fIp%&D1(O7*6CJi2ouHp~rBy&CdSCZnjU=vmw^wJ4CD+R&ieaZtruRd82X6oQ zO77Q4QfU(4CDijf*^4Zv_l?)l`0$WpD6lA(>S=_)*f5X!BQJ+C!K}pVY`CoFS#pFx z2uRX-QPV)?RC9W=%^$mkCVqd)eT_PJzHtn6H2KyO{+~{N5-BN$Oe#YCBHkWyVi(?* zv_S)=C{H%4A7mVSM4)5FF7|vf`?Qz|nqh|bo!o##ycj&WlnDE0+d$f?SJ8T}F?S_G zE{Mofj=mxG!bZu}q*1nOXyW-TcG5LlOKDE#^$8`DI(Q_D_D?1$E{_iGr-@Rzi7fb> z^=vsgx#_^k1OorhXUP{@l1*#gU$09JZ%OX+rVsPr*9iVk0X|$_(shb&rO!^w@8Fm4 z>%37^2Sgh&SI2+d7INeM!pctaWv{buZJ5(a0X0{4Kcm`|(1(ulpGX^jd+QiZ_(9G+ zwbYBZnHj4Ih89ff7bb3juY>XmXEMJ*V&*reD4QTuA3Hr|32od%Xx2F~CTtiRho`{^ zC~tSCUT>957j%aWnrt|a{HGuS#}$OGl~~iDdb@KSYs&pBoK2Qi*t*JKj^^=(@GtAC zLwWkAU)6;DEO!)jSJ9H$n4X3R@GvGaGP85e#mYA~w@n)>Uh|8UdvN|e>gldBcJ&&! zH%PFn!yEZXI7Ct%8a1q0!DoMKzi)~B{OaM^zd9e=uYS%l5i5D%jNqvp2DV?)puGDs z41LM`mc6+vP`K+0%py`AYCrw{%`f-o3GQ8+Y@KtPhRb7B#~ZXri2MB)RdPETGs- zzNDG~Eq2dxT`Xc4p<`6C>@=UMT*cI?<6_MN4L`a4Ms~~H*wlNfntS5vKh->*$p;y) zj8|)+nU^dyC5u@fj>)KwZt8rkg`$tdJ;ML!Ig-4JU$t>CUA?r8y zM34krG@`;tl#fTfv=sf{%u|gAMH$A6v{RbVv!t+t%^@st&p#m!Pqu@)2~{m6sTwi@ z?oQTP0ywvjs_oL$nyMwB`cauzYJqWfp<()g8}cd=y0grSH^h04ESS-|&}^pz11-Op z#>z!hQB8H)SB=&$RSt!B8?3*utvyn6W^esH_GZ?8Y;_%F)F9j_q}xjh>a)(@IQxcJ z5SL?Ts44(K8g{m9IxCHCcRJ{e65I-eVX^BswK3_}SeiTC%YX@wd2z&o_fEcB#B8PP z=S}nR28s1PWKpAThZ;j`u$3re7Im7fCi9^}DSs1FHH92lwj*0ZQjd%~LXjjRS8%#r z`)XDv0UU81Fg$4j{py!}aDKpI!6%sQ3$FW?UVWao%+-@KHFTPib}eqUN>lWx-3Kpg zd{iPL%gmhN)j1i?XF8mBZ*zI2wqU)UM0&*b)^v2kB9($`2rvS!)v8M(C=D-u-_=2{ zXDn;eqKj0xq0Q}9Z0p6vn7JB`2vThg873-@UoRHFcD7g{ufGJ{`!$C&<4ycb@rh@3 z9X^ze_+|HzP#Vaw0LRX*6Baf%QNG-jpW81!*44axp12b+V$Rzt%-*oLHxcyAc$4-l z9upWd+(r7+{PysvokV%V*L~){_!?jz9w}|k-Q$5aP_BmOBNewX2)jT-Xnu-^h&S4n zI&Wxv9j+Rha->!(vNd5KFdQzLq<0`B?F8$g%-uY?UfNz_?{LDo9*nh``C{AVjui&^ z*l{WC3M-W2L@}9!>zMk-H( zZV+8EMRe32A^zq~T1>CrJiR>^GY2hbcy7u%*We`Ls3pz)B|8#v6hMl&-WFS%G^Tui zAzl%zN>V=9D4Kf4MlDuq(QU#|!0aJoUre#YK7H!RKxhHirDvacvEZ5T71XG0cYVnk z9J&JH6Q1j|h?2_sWV%OXy+x4tX~~F3BueW*mOjY;MaBR78Ue|4Kls8lQ!j8{PGmG0 zS==!e?+B6MO#Aj1v^FR9msHGX9(R|1D++PsY2n_lEFa%D;Q==ssT6y*-{1Jy)0I_? z(#PRri{UA%esLKpy*UA0zya%I6)?K3!dgmU{S^&iS-zJnRAYDW_e2Im4lCH|8T~_@ z&Is2LbL=x+8by^QWS{f>4gII(MvY8=1QQXMR}l*nJ(*JCwmCgT+U^mFVkgRr97b?& z584#$K$>Wz>N&-$z*O@kT$dBv^iPG~%DB;^k2~k{)Kd*_XbwM;cg5Oxd#Pj#bMA|* z<+_DLXW9|EgyBRwlINPBk?L8FV0D1>r;OAD-Lt#rJ`qfOvy-CtAOHBC>}K)jUE+Ii z$7P|#q3K+63j3i~D)hUB2Sp#59sZPeVjFINpM5l6Ufc=65`6Wn17#&R$L}%EMRioq zDeMb-^dsed%940R$Kr!JTs?T%mY9B6oe?e9W*f)jLslVGV%!ek4fkgK&>uM*H*-X< z8d$4wri>qkKVq?t2cF9ch0bgy8|)U>*u?%*ijn&)x_NmfXUB@qo#oyi?kZ9Ju7mQI zxlYU)1+jLVM<`PEE!0Kf?1xY9@Yn{FAHpH#i~lf`MuypeKkcU_RQ*I2^s3yE%4^G^ z2N!NF#2CL*6O1ub9h2$BmlO*=+NMg6;*$)P;m9Du+}j>oMU9gB8z)?X0^{r6k)`;) zB?b@4^elB*aFRsFt(DO|GQ3{#UD4J6_lV-SYgmnvcrY3q+1e zUPrpGW8j^Xd49F%%=DCi`{#!8U?u`!;YS~4r8uj%6dGEt_#+ZWl45%GvJL_M(Uu)m z(MSF(C&-rSE6PB#K`OjF;*;jbYu{s(`ax1NMr6!}Y_yWCP->*mIgWzNndhb}K`)g& zb63aTW*S{VPgD8HXH+3|vqUI{YA2vX;kNZ#J;i;P7W&lR@!txGep7V%6LkN)L-2i4 zm9K~}>4|iu#~+l~?%aQS2wYD6x`P|vhgq*Oal5j$9$wtKGkvq+Ka1Ut?4MWoWnCs+ zM0@Nu52N(L3Fz>G67&c=jqCraFgHdU_I-!`eeEvvG8-N@t@%xf zHDL4dI`s2u5=ab#sKp31lUrRdG2YW7$82D`U9dlQg%;T&-`QDAOv=!7s^6G(A;zN& z1FU1j)QZJKcnIOv0^yJT?8X744p!2$Sn^LY>W|%G4#oxuxGXaxnN%#35fEuOlb

    K>hW1>C_AD6D}CC;ETHOMj$G*rPL2-ecUGv=WCo?J0@ ziO4M9q~foy=&Rb?5_BT~o-5H%h;OiTWExX5ONwAKsZ*__v$@r&BE!If7nO9?pX#Rj zoZP78GP}X`=7kxa$%S4DLbG(F-*>V1ey#=gX>Q&tvS@CMPfx$`W;0IVMQuL4mNA#S z-rtI9XX4!i{IJJYj{%#{gNX>O*np>^W49PMEtycDkDZn$JxSmHsp|mbDjC9C2Xdrn z>Pv%{9hp4lva^eUm(rQlLxGNf3a(Kl-MXj|H3(G=a!nO+CS5cqgXi&>*1c;;%h0xD z2V2vTyBtLzp*%j_I*@&_GM-!0W1kH-iIjHwNCr2ip|} zJFN%1g9dw22m7i92L=Z}ZVV2?KaMJV{AB%cBIx6PsUN4SK7Jnj_+{hcH~7%J!qB4i z&~nhw_tc@as-Yi)Lq9i$e#3{i6oz-KhyMf(@23tQRt^6h9R9a4%sA%3)c4$ik3g=B zJWv~9sUBhbIKuvOgp+-gOL3IjW|a5JDF40Dkz%aKe=WnWIfVdOLl7Zu%+vOp)Tu)5nnWmL*UiuE2A`iR&UUlU_Wb+YTs`YrH~aD9?C{Uo zp)0d}>|Z8Czf8J+Dfl<>*?p#!{c~saOoQUr)5zoUzc2rNIlb_+e;s7Q;LB^9uWO3m zT0TPZ6cJu1MABYw#uu*8s#eQK5ElvqY)k>WghI#w2y+^k&0`MuYYxIO%e-lX=$Q1s0A4nVJP`@abfEL78JwMQIWD1k4~WY6T~$ z4lU@tTaZtiH?Upc4^A@XfB?Cc%+i+lZRfc;lHptPBwK_<^b*)(F3W~^9>DB{xO#jK znfrDQ$gw1sHm7g9;vEgK13&_5RxS;#T>iCkh2wjO(sw1p@7Kk?-+Z^CX1I9m-FLgW z?=fjBsvN7awyW{Ms|nGo)`hDnHLHogR_}gYiLd!ii~gP!yp|OWu_#=7G_>|`2yC&r z_W0eJa`1O*^qR8A%JbkAA4A3p%ab|tLdeBU&W6TsZqZ!bH|HQ<*K2+)_k58QveRN_*k1BF9*MFA_&CtyXf)pttEf*wnMZI`}$UHF)`z-;&n^!qn< z=sWF%Gp%})_5OF(-XbwN9H|aM?q{?rgoi_wytk9$C%qzc*>=d1qOcmL#D3=41tlq z*B=_LECefr1!%>HMNKM^teJ+>>xXV$Gf*Ahb3gQK^gO5g8( z+a0o9ABx_sdh+M%yIs)m{<-(-E{xyvHTzaZ2x(4;#=9t=5U#7~r$2tb`2F3w4q{D# z*dhK#2JdP7nr9J%2oLQDDDATZ?niL0`$iXj&)OAt5G1PO8SebBN{GWiAJO7Qu1+fONAX-9v8`J*RM# zkXZ{C>8Qfi3E;HGkBL{5`#j$KczOYOsMOJ-st1)DKs655wL;m}l%&n!T<9Fj7eSK6 zO2@EbEMB$3Gzk+$Zb@*~gG-3utig9VuKZQOv0ktGAtCATH%xgs!s>;gWY}&cDsy*z zuJmW??zR=KlgFV-V%QX3dI1f{xo4R>FSxCFNxp!;0MNq;a=AlC=HNwH%n32lfgnP2~}C^*b<0P{9nVxq{K?OafO zPK}?fqn(Y&j#nJFbHsd3?g5K#F)2!pO{;wbn5s4dF40%m)-`^n&pi)IQk$8&CMRGY z=M9zA_3}}|Y97CM;d3JE&!3!JjUlfL3CZDW_jVtAMc+M$fad&r)fkKQsMsl0BuwVeVdDQ0pxbT)v^G;D@ z>0nx8RDzR%tysP`+U5hc4#L{~AFV)^iKg6crJg7Qc0hjj8a*&L9)HFW1UoO zWf#bej#_`wla!JWnNm+s_{w99v{Gu$dtRB*i%JS0y<317=gNM_`B#H`mgj>{dVSB` zEvZaE7nm)YdM==dPy3O%N}vkYCb-gBTn_49_Z>!do8u2J>{RmdN{l%sB0GSc${UW2 z=llw7lV%`-@2&|+`pxt2{_R#S&Vsm1ZFocSJ^v+3CGlEzP=r-nfVlCyjVh(8S<`12 zjxXy{TzDn8jPNwk8}+HIeC(8gsct3gR;$pAviW<|{OIajhdZVHLUTnti%oqq=^u!P zv5LBjf0aSvkq}~9vV*z1rt-}&vEZ5nrF28n6)L-Ub<|PeUo)ws*-NYmMT3b*TAair zEm|mWfx85H*S%?k_htv?AD)nRE^mRwIG|Jcs1V6HNlXnEq{+Lw!j0%C*22Q4=(_Ag zPf{oEIr1WmB(m?TPH=5+G_TimRBsE3~>$3^sWybC$JG|VOriG7S8BW&H zseg=5+Op<_DZ&pVko z>ipPzsCH3h&mpR=9S`pvm~o$YGna*Lh#QS`JVw@OXz=;U?a!J3b?GL|s}6paz80ps zlwqGF7<_f@Y)mG=SkhUAs|>#YFkw#i9PdNaB%+;|?clX;RHkr1x#fD-fWTJ>&;NKj z_jjiMxR39=Vc49{=6q(3&3R*vp~)fV=6r}kLZ#ZtoSE|>$3m2}oKi~8IaLZpsfY?m zC`I+P+jZa9b^inVao79vd_A9!$F}gdRDp8DZDDHxFs0v5obntQt4pu#Yk*&)iUQs# zAtxw#*{i9kK+kOtL?}B@H<=k)Su`Y$`W|$$m~lT|v>0c)WodN2HZ-NhMO_yIK0xO* zcJ+riiTOrwIq6On6a`&P7^i(ZS}$|>cD~D?F$iIqJjHIvw5lc^I4I$X#GI!BLC z%oiTA;CeHas(tu0sPT6_AJ^>Ahuqeea1OF;ykx=Fjm#@8!V^=r0yoQPkN-7T6Zdaz zJbP*UxNexLA&G;Gm^ZqV`;XjFbom8NHOfJcIE* z3`VOYE+_o$zZiPgJuT6@86rHF<_6Mz<2FtzoHvvBjrp(Ozg4XeNm{~_`p_1cuUrU^FV!NkeeW6Q&fpDY*svjmcAA7~ql z>G&-T0yE7d5`1hy7S3rwl%+w9$BCe{#Uf9YfbEPYH1S@Auh+13X3zf%P(ZwZ1(ZCA zw{FsoI6{L!CeI*zQ-nn)$xMuv_50MfJlQnj$m+~+=!>W`Z#?CtOV~(ca&|bAd>Hhe zx(#2EcBoQ)<<9W>Bb&v@y=K%Ad4E;%1y@rL)A(N&g)VlyqN~ye-$O%EKGZJeao*SL zWcOEbt8uMTUp-yu$Tp0>3(h&?R%I}}W;^&*HXblGb^d_=Za(BXDWh8c4id#xuwJGG z0B7}4g-KkW2T=}lfK$^rF}xmZ@!D#0uijuUzrOUme(meKYMlrzkb$gVJzf=4wU(JX zGr$N}{M(Kp6L9e$ zs<;gOHaJ7%8eJdDMLb&D9$EVYkI+O3w>%IGnFg&!(232rXTVVN1S?gJFY_s@^;WE$ z2?|2Mg2j@BO-MH;GIcG<>R0EFm^kH0?!!UX>91Y$r}t6Y5jllZ`fkJ;pH+&LsZ!Rs z;we=9kc16xMag9lMOr;9uJf%OEzyv=%4ZL0Tn8#*uy!5vrFJIKo(6nVsK_dO-~c*0 zM4a&*I!ohs;Thgju!#+NK((j1r&MtOC}HoSfx!NORc`flii4ypYV z@zLtf84s_M1dV(OckDCM7a#uIH&;DGOvTAI;Gm}aP-9LqRbkM?GlS>8bytM}ls0oC zs7%uGp=i>Q)MJnwAQ)7Upx_*5N_D>;5u3U1AbrJH-)xM9#DObXpdYV|`HzCcR{P#f z_h!T@k@u?<9de@ov0oF?Lmw8Jja^OBhvW>_^9!^^bUzOA(l2Neblj3#%i>;R7kcic z5z43!?1gL`XwGegbAwt}wgIfWg~U;S9%|gj9<7g=(85i8efy|^o(^HvCjwjU)e30Z z*LXmvu$nirqN9+ItlgGU=J^MMp;>ilz^tdF z4gh)VGOPTDE*nTeY}r*smf=Bc=5CpCZXD_Y2Z%rXg?sa~v8-HuRl&ji!3Rw)KNmp1 zP+4*jf)s~Z`N#}f#6#gp+LI}vRnQckT5l5aKy{Q>9*8K$nKub${1sBLxc~g7S9U!v zQ^Qa60iL$5m--b%1UB6j?q$Iag!5mpxYy5tj=Z zdrmDE)jZD?I3U`L5>~`Y1**3muqVBgs_Qadz;0&FISd{;g{fRZ_-v#ifNmHh;aQ(A z9fm|{We#nD!7Q?dWlQFj=7e;#ILrGxCTIeM7iWU z*X}15m3~ukGe33^ZPUhK3Bk;>Wa{!pDcq*+0x##%*>lpi>lEawDDZA}TY4rnW;ilX z=)52!d@#FE3;nSVA$2!Tt(^6qgpid(-@fFwpoY#w_zc+}s!kk@L+72JzPa6BT*=Gs z-mN*WE0n*LfAL(YdB)XdHoEi?;!e|CVCJzrbHAZST)jKuxb{ll`}|%u^J{*N4skr+ zxUe#jS-);BXlrGRMASZB<)6V;L8X!9@d!5C>Qx8op24eG`>Mp1H#vW(vSd+6MWu3G zL0cd1d_%z!so=TvTaBEDsL&Io0N2a&?woG-kErawdvCrN`n~(lN7W%W#nt=SQl^LS z3^lcE=)Zt1e=c559{@1p_Etb@kn~Qq|3pfT^qJvzr|U`^s!sknm%T52t-<5)qfzKj z)%y$I7VhkOKk}$LU;d1>brL~X{BXPEKl1`F2h6X|xy;#jh*#cYx5>!X#Z-TCGkB!P3F5 z4@4$NPCE!Koeyj!D+C0|pAJ$E2*S7^WD~PwT7#r>7iDq-zcwt1kG$UND@`?&N~coM zVpIW(m32CX61=2Wh|H2vg8?$b*m)htBfqA~#~4GVFz2z7V) zWZC-Yzhdt$-cS|KPrd4&{_|hSj0mwEA)kT1W*dXW*dgRiFD)GXKQW#?r9}lO((^P~ zr#RGNOvopB|@j~yJ=$R zR=i=!7Vc6_hB;a!3D1nY$?0qJUoKTIiGL2i%v>>rM$oh)=oS%|nSo5Dh%bcIYpxM4 z?*ub)BQmQavRWgudn0n5MdX%5q`@Lm`PSY_MCNNp7RV@H2`lHiyprm&S}5aA&0Qe(d*m`AuOAgEVI5L1>{C)8G*ourqg0lRKw*A>|R<^Zd6%W zRCDk8&EECq#Hggr^)hx8`&Cp+Zw8wW+-~u;UF6iQ-e+x|U+=mocNl%Wx0%r;6LsUX zpsE{}qjFTQ(TpUCOJWh&FS1cyOO?Pz54BRS%u$C=Z%Es33@OvDu%gEg;L_dElfBXM zbJ5Q>qn{saJgbg=(HK4TncCL~oUx6O!O&(;$H>nCB`GoUxiN35zfJbW9Hyb~-p9P( zjQQ}HDh)Wj^qx9j{cXu&bJ6AWO2Fw)r%!*ryt&eQ$j3gt-UVFk-CTjiOuYh1Zhd>( zMSW&|7@Unn&ou%iv1fiTxqe!l`SogZH{gs6V568q>1{njRQeDi4@6I$5n!L;90>5? zsQ}qnp}jNU?->-p{~E>N01iMC1KVBi_y1_J*f@7uq z-D|^HV){`FWpSV4VO%ui3#9)y_R#-`;kg{rdiC&!JJAqZ(`WPP}`2d9+aDaHBeYpQ)b^6xH=e>{q{@z-is5$ny_rJe; zKfZo={`fJ61K25=w*tdPi=+7DA{J>#qt!(^%2suWA>TBF+;Vn>0{=4PG3Gk`v9zvW$-FuIS2Q-X*t*I*XnW}XLxivTaTM-CIA17;znyL zg(O?G(4$0`$cAJ=JnK`jU*g)QQu62GPbGmRk)O*W8k;{?L_cU~D2W+S`%;rzBMGZ6$0F1~bGMXF{2EwNgcu6%R#TDE}UKuu2AiFq5D;gFE}vXLX+jg^V(Yd30{ z>QO{)ZiD$6M!Zp!uSz%0>Xu3@heB)VxJH?})jd%0we`WTKk8@Ccs{6!fVuu!MO+nF znZG&dnb4BbaBz10F8Jn!%4&npKBsQq`?Icfhm-s^`uLDYh~~{g*uD8PrJKnE-6?Cv zTG>NmVNGor57bGmTiU7KcZY7j{ocnjo~6>?bNF5B%Bj$3IrB|hbNj;F@q|0}M3DNY zJHKp9x1R_EAa_O;+r{p7DBakY8+^mNQZNV|*G_(J>f zCz;rvzGH1EQ_t;=eEV7W;qu>~Gw%1)Ixc8=HEF~LTVX=m6#V^nUAd=!-k1x%amjP$ z;k9>S5Wc?KzZOnbIVV{YK2!<6?G@qpcQ{=UocxJDau3q=KHWMg_G9*uq~v9m?7id_ zKWJ{jry{qC{m+$2o5p9nuW0{SJs#+C!OEbfweVfQeoR7CU9z!7tZlX2b9N_iG{P`+r_tm!B)` z5bLI__ITPUK5(EXwcx{b2nE z-bZ6Uzl2mI^DL@>e*_XKf|F#DkQYj5PCWtnv&K5Q)3S{ar7+n}V$+n0vhU}pOJMt9 zo+K*536w(Lh%+YLWCkHU=9iZyz}iSR0V&HJ01gqBe#KZf&?BS3(QkNh7ceG zzWA*?L~JeekUot+&Z1o@!utrY`Ye66ZYFUJrKn;E5TjU{N#@)_db~v*GptpzeL;|ghi2|kP?IgWC_G-y-`y&~ z;&rY%&vXZSQDAt5<2w$))YaPx;;eXbhbN^+nUm3A-)HT@4R z@COSKU_8Id?@i!#B7?+ZYx(G61F-H@nyJ+gRCp9G>k|b-X5WQ4N{=Es9N{Jp4Kn`x zTNAKm0ZSevU_uxl#3n|Mw_n?VaJTgLluR*sNaPY2;iF}3t!vJKHCV*BhHNqNm3*i7JtcgfX4{1f0zuDA`GYiGU)JK z%$9G8+|@5l6nyxHUu4x4LuL^rrO0-4+z;6Vz@~8HxDAcm$4?jAz^wNH^z7wfn+qQ= zO6n1W<`!jL#UOF;_z`R_8>+^-tw_80R=2S&+xsdo87LPJ=+Oa_nCfQ^YfPNbo`rw{ z!Li0>?}ZV#Q+ZBj1f@uHAb)+~CGw^WOgCMo9uM`*LEzqvI%Ph5jmp@20(C+&kqE^S zzsYTxM$HUDHw98^LglwzU~pIFUBVY(Q?CN3nBQl$kr8yoAv|3Ne~yDd)D2?HVxiiT zC45NKsQ-sqxC5h(`()D(bZ zZHb`qOLKS~co3Lt)EMY9cLw$bo6aM48y0rj-is5r%7Gp3n{7r*m%4`y?%anTZTe}s z{x?rzrtfu7cfas^zv!SEz&s95V*^Jm43A21F90Fz@iXHdPsU15ZwFpTi{<4P;Z`qmGZaW-Ivg zYYi|R*l7KdkW(4lo=dSGt=OaLwtLQfmJ+OYu~h)D6eku9c6s^)A~t~HO0LSjwh)E- zM?Vw>DLjTBCc>0IvVkl{B8NbuF%~}SvXjok$1KEe#mO1l161d*=|o)l+RrRXg%0KW zzv_yt&&vr!Kfbfq1LNhy>oNCkyj{OS!N3Yveknj-jYLn;8Wf`Lc*6+eb;ogBH(|N&IHQ3L( zSp*&ri7p3c?JRsbR|^5tTK%;*S^07|dN_h%c+}JJxl>t&quf~3Pi1!9uUIGd|4l=R~v(7OWf_07hRv>_^#cfe>=R!dT1r;tPwf!1+f&*O_R|K7f9`x4^cY_K{Gt z5xNZ7VEAWDq)|9I7ABR7LdM1>U;+974;MpbemNcp0uwM?TfjDin)2U% zMc7z|V^vT>c;ID72&n&zkQgLiF=5yf9A1|4GX8=x%9dGz7%K(qD>^1cq~B8l>S1Wm ze6S%Kh(n#{#FE8bLFQ91>ol}REjWk-m!1OBF))4nWv?eTF>LrblJ7?kpwf!J`@Nix zp$0NUR}djl6a#F%5ddDYKJxnFDP0YPrmO-YjBbZYgCTyOfX|*|l#SR=bOxJw!tZ)H zK0e~lj0Jj?CA=j@hP2!ro#Cq{{7ZOwRpwwtiSOfO%x=p zksRFzOJG5c*`e}=qGa%3w?!~C5Trp#8z@b4#vKzckw0lsHA(kLeSCuCeUn%Mr6MG!OaZLiO zg)bW?zaIn;i+R_m&yhyHZDQyzIw80gxa@p-x8!msRTEHJ7W6?uaIe!;RQpSOJl zdgfKx{28c>g5a4Bc|y=|09c?Fpkx=Vx@Es^n-M<(Q!N4K{k$m227b67e2xNq94;0P zHrEL>D;KcP9-y9n5-}*Eke3kg_qQsV0?ZOF7@tifs@Ojk4G|K9x!GMEW_of)uNe0M zwYT_{`v|M&d;><@e?)?mYJsrVbmeu*1)HSm#4FNxxVvceNeT3*5JdZRB1Z-7Tn_N7 zKmYVIND5Odt?EF^C~j1|@hHSY?u6xG4Nx_mc;BeO84rA9P;xxmLrQVc!w_R$+Ckw;AeEBUvYEcS1cv=5C8WH z;7Ft0xqDYMF%PRxx?s^Xb76(rHpOmCxApLC!J9+o!1b* zMGwMOvlI&koo&4wfl|OHUi{g*^haIyrwwPZ^?qr%PJ&qrXX(`PE|{d`trrAp*)5+; z0$F^$-uUyn%ofuC4<-QY63Z#~)DeBDEfkwmQLi9W6W>E}-N#6_^A`URJUGnDPMmyR zod+a~xsm7I)aeNq2f)l=KAIV0P>x1#T47%B95kHvibDLo31bpo!vRe!3Z zkDm%OF%7(keGKmhx=|j9Yr>?qih~pS=ilB`Ujzvfb7agOYsV%&{K*eLg80IN`1?1; zb&j<<7hGi1&lguCyyRqV$0g1JG@`0~zS=%bhtMhgrIwhDXI| z$HVL*;ZIIHk-|emg`d1CtCv+fp1@(<2Q87JG>--jLlXcnsaObqL$QZP6Mufd8;yRk zz|^{=qHs)9Qhn3c-{6xQ@arjQSrQQW#o?eucp~|HdCEXgQJbwA>^$iP+!g3a8jYEP z6s8MRkW$5r)e;;9}h$l*Y7I=xAK_=IZgm=rcASX3piM35?f3#oD z!k5ll$l06eg^Nj`fC4DsMuV0j10+lVr~o|AAWELPKSz@;>?qoUN4!HnSNx}G1KAE# z05}>79lkmS6t44J6TPTZWXIvZy2M(xa} znmvJDP1Qf;t4f^c4vxzoDXMe^q z;;#&3A7EPL5{Q8gA9DWCas5ulQV;lR*t% zY)j^itv*T{o)Re97fSN7QvldH&8oM5Y)AaP7*cc@^1@w<=;&)%j(IaNk5=T#8V^Q7;#II<4Ysu&D?8L3B)@=C-vZ@& z*ajUzYl%_OPBC#4M}r`qcZ}~r>)f|~)D!X1YNUy*L(4DA@XF7MCr_IUw-#zHfs9gK zlSclVh>exj|b70{we?Y3m^j_}C{_0qcGHo7@kuACM3nlE6<9Ju)Gr6957tw^qz z*bUUnt3v)iBz{(*ci%0kR*MQ%e@q50skD96+!O%4UlNm9HX&3Y-W$mUFY5#>E4{?Z zZR5-=R`~D6i4ZJ^)hm3!6=fMI$AcA;g`8%Tpc|iz(*fE_=993%$5(+X&ps~u9ITv> z`TV2*lf9mCNcHEa-p|qRKc7A=1haU1#^OsQXgT4sz_f$qyu#9S|Ch7!U?adPt+hBQ zV3pa5R^VJ-br1eR`Kig*zbYH|@z~Or%=b!Rt(x90Vy}*`<yu@qc`Wq0 zve9NpF(b^&V{g_i&mAw9%4sWHRdn+(B7^x<(WYB(vhq(I0;eC#Z1nZ6SNO@7=i-|A zM9|UJ-xoGE|7|>z`SxG*(X6-usVxA4a@fNACIARgaF(w=SQFcZXOT7!qrcVa%`6fE zUN4p~4qXq}OeIf@xd`p@X`KmLHi`wg#3H8;qdVCxkmVNGlJ^M-0>3PVU?Vs#Thmyi z3w{B4{1Z1}TU~Aqb^P??5@c`-`K%8qE4zcS+>zJWd5%H4;TIXYfGhy-;aTh%3;CS0 zwWD%OuJpZ%*KMi47SKTeFXlTEFZd9t`ok>>xEaPp^J&CiS% zKeZqKI(}?7G~v6n9`G{wH?JI6Jr?4B@^`{>q}vrph^3_|8Jw>pc7*aP>Trx~>CFM` z*=~n2PD;Z^emuwT)XVOW&-}EZ{7$d?eN1+D47-cwfGRor1_G;TSCCVEzg=to-skLQ z>mYMa{z`M**SfOrTC+N@3$|YN;x5MY3D^+ zHxDz4gF6Qg+yKZYSmgTSgAGgMlh{9lWQafwnjXNRUgrF=Tt(DzkW>yJ(3+WZ1hDjz!98SDZu-+g8QR)79!YuVF_+IrmoA;>%D|fgs0J z{+MoD&+$c}F1yC=)Kf$U9^zExyWxq+>jgscY1|MqQY?9Z9;%7Vo{J4+2P;`5)?L5$ zE=NM&Lhv&?@OfF@pnSIYo6uL!8=Pxwt9*8&UYX{|o7G*2a(lzg=?QqW{^O>@f_n9Z z7-_Q`%TJ+PdFEe}R{Agm_nBmwM@%kho`aB~tl#rk1r0|Xkp)4sCB`yUo|6Q=9h@nm z>vQ?lcCdZT*J%+;Ew_Y-rT_lpz_EB>nnWN(7+FuDaVe|XLxh6_`!Qh7c{WtYXYU4- z&%T=r+UV0%hlimHfT>NjZH^k1B+RI_s4;7ay;E@X%p+i_=_pg0&sxri?!H*ZtdTKU zla)@w*pJYB4i(Ze74Gr%$~*#X<5w7(stl{zKxNbLp8`ysYyaNVIngyIw`!!5#YQoo z+^yOsakG^Ib<(JTsj-?MVjD(?lst6^_$Zo`pWqvI;3bJFzW zzaKS&xLDvl`7;nhcUL>5;wJO~dWpd$g5cy8S_gPD1$nb1q3~GfZp=MwG6?95KFT1jj=(Q@|jKjRG@0|X(gqM zzba5^MO8(GFm}(Wp3V5mvnryeRqa7gMRsW*v#M!{3N%JDL5Sk9)P(@@CyAgiU>CaN(>le;k-!lWPIX9tcCqBW2 zM6Myu)KroI@K&KVsQ5;}8vc+Jgs1hQ7bT;v&!%)EWFjbJ3OC^M(|gBd)6C+>Y|H~0 zk#=Hah8giLv@9@J+_ucuVt=^?d|`0pX)zDw{U8dDD~o#Wo3GApy(F$oJlBDA-=^$&8ke+~ zx0%`yPaSl447&f~&;3j*v$*#uQ)xh^s5?#e{q(h=G8)PbZj#aDps{Aq#aq@xq6c+gNd_Jw+>v@~v2lN_` zq#_&!6vYpF*NJ;WTGgTtUI<%3&uY9W8Dcg~jy?|pH}_2*P`KQ;teADn!+#DI8PG#q zQ&O;~gDne2tlT;W_*#cJSj-TsJ|?z)l_5nWce+TQiBB2|mf77a_I2$8rY;WaHv)O@ z#y}+KD>iZmaWo(~NP?LHlY>TPp<+ja5SV`1khpAXi#Aq%<%j~6kZFL!_}#B_;MrhO z3`Vah&=nO8Ld3@dSwV2ro}F+3@Tm8%m*SBaVINd1!)}2lUdL#dLx?*@V5~(Nvihp7 z6&>lQ9p`J}h}o(rHBY)&&_&C(tOgQDtYIufkK@%pVj|MEkv?fkxKG%5xy2QTC@5V( zD(RoTo4%4kN>hA^2HDr;*pKTKJg*&56u~p#EBzw0g)jo#7I>vX);jIix zn8Xk{%pwi(k5I6ce{4Qtz|j>jSdA`TRY)ap63RMXmyqQmUFV7G5>Nh=g=(FzFVafb>8Psz#-&#gN zkV7We>R)^|x(WbuN8iw|)kVTZ6kU4!M}hqIR0UR0DPv~ziNy&1r3+XrwHD8Nkb$CZ z0f04Swx!xC3*q)NAC+rGx~UZJCFLR-SS#;0SlXVfKwKi z(Kh+@5iXcv-R~wo2Z_zM(-N5KjR4?^3=vpe#ymlgl*OgvA=hyAURreYu)2qc2f)+i z&VwM4dwaI_cPqiYeOX&OC+=Q9x25f|o!61;arbnphJz51+gl#oauIs#LJy~7Mcdh0 zED=RvrW6W4QG*C4dbbsHPQF^Y87o#ZyK`cCO9I${LG;e9WAf3j_J-gVHBz_z&0aJO zPU^^W-vx5ZV>5D_N~z?M(*YIHSvoBmRYu0*kRmVfjc9mK;>#CS|2nN6ONGG&Saj@8 z&-3=LHPf zABgEKVgc@xKGDM>KXqj_sAeBxDzrzEdUvHou4e;4?o&T2?k%iwG?UIrWbIiqJ2yN9 zkgq%q*r_V7zphj5N^gsMGXU#zSNq>A0>8QF4colW_eCvDfbB*?ziU;BR2qZIJ#W?g z{yV00`l3WzEURj)t==q)B6NAT#@9Y?*hLzTs!0StAIZnw(*a?ev|kTBDH4~9;tP< zJNS}B;nu*bs;Bf!wIK+h%xN+w=2ZTbV%8NB1+ndkFKm(+H2RDX=3W{zI)$4g+uD}8 zAxAEi9>@w}^j(GOG1JFpfo-F)%iwS8XO3B|UPvAB9j;=H+i+6u`iAQbpZTB^fdK)H z7L#X|I|08nV;2X$k18bhH(&)1*OR~Uc!?~Si?ZcIDt2ePcmS29Mg=|Vyj;tE(z3hKn&>%u|b`4@%ksS zde+*&7bK6wgN@E!?VSHpCV*sS?bR>2we9Vh2=rBtoiZOoQ_&GtC9zg)y!njpz}OOn zn?wb&41EMG9)WHt_}=lwG2aH`(ypT*q*P>K-{Qqyj!^>BEEXWXh-0t-IF{z(slm0( zLmtF!&7=3Zyo{H~hevv5*DaipZ;R4S`*RcJ<9oFxJ^DxT0rrSHK3VrVX-A4481qh1 z9~2g>cpKP)1zD?)g&&klHvx?8b+#3{S%kh?NgahEs6cYxRb7F0LDdWe6W`IUV{f~@ zPxC!?gCf0hSLO%CQT@lxKJHPyb?WS}y#P!G2NWTuqsT^BNxZFrp282aYkxKK%4k=U{p_CR18Imhv0Bh56j?whW<`ty4hnins#XRaF0D5HQF**M$>U4 zeoJq+5+DQuCc=LrRJ;ghqXb0CdYOJWl9jTif_3y&*l{mFvaU+|a(^@t*5$4o_NV3U zgRIjV1;M1c{E++a2A{yjCZDck#2Hg;NY-`1L-s+3OTBuVn~wOD>1*HNm;FZUr@kk>{#%Yc1vnjf#Kpi#t@Cc@549Xh+P| z1Se~c2R)2rr$+wFrqu%B_%T$G((XRw*cQZHmDqzi7J$viJ0Ti*h9|^^o37t!=%C88 z0N&O`*5cYP>p)$5AR-Am^^M_QT+@-qXNX=1t9`8)B1i)*Z%HtKFg* zYt4WV&xGfYq8U9xe)aXy2(E};d1QH{7|a_3{h^qOKmMGSJvrA*6~f+#e`tp9LFS_B zgS(*~nAC+ASq}w_A8j%C+a_Oiqn;(aRC$`gRG^~mZ)SY$TH1l&nt;i2G&6g)_=4Ue zoIPXIiWk~HpQY&S1>xYPs9nvqr%pXwGNB2g#N71?z-5dw1^m*5M)^6a%Ria}faw@* zrhC-9L?fMhPCZ){7riXt5m9q`iE2;==@}e9Wz0}LO+4NyEn#@^}o-!gkgnCl)bC=MX&2tH&) zV0#QXfwe%@;koQt1#yMZvmtt7fqI54g#462|UtC&DEX$;4y7b5VG zXQxy+Gyq>WaCa_WZ@x^eZ&r&A3#c7Y?zidqYR%GRTA?a1eJ|>(%6$=cxSk@6`zDE> zXhfpWqvRIo6d=d=4Z;hc&pMH)gxyRiY$SKhxa*KU$%{nfg5OX@02LZ;9vt}evo?GF zvnwxdNHWcE01x?e3>ny<1(Ba@GiahHJ#sQ=&Uik|)naI!^C^IXqi6-rSP8U-XIV4) zWWa1|iO}|Y>KU)(?ei4~#wZGg)L>wY6hTprku((kE4W%n5dtg<_3`pG0Ru6(H`a`O zXGB#7z_&X+Q{nJViISMI8lKJ_Hm99K%jHK10GoJvh7sg+;ZzF6Ce$tjVeZ=mpd|}R zH&b+2nj>!Wbq^osjy;~3vlPeGR%|^!ol4n~(s>E38^EN;wSgg!@`+I}ckIFn1)p(s z$_fvVBNx&asa&-*D+9;eGUodk2@O7=li1M{kV31kL9Qzdl=*^T$FKz65{|d6GoRbsjUGJI8J3;+4E)GPEQdKtclsi6c zhU$X5&DMf6BUBmSvRN7e6u_sGc~;}NDZ+(tD{^Y|w8kCK7O^?baY+&;kEH@+$`BNK zk>9Owgt>P*;EFDKawRP9o%5P7OExjA_btLWmg19IA?-ym_@|f`0>kb33B`g!YGEON zCL-B%?$PDn^JzVxbQ?S+P9l3ZnJSDI zhabEPwgJen^PcR!otRT{X8~@z=C*IO@_!~NFrLtiS`qlwMFDMMGC;1(z`&N$8)JFl z9hHlK;ATNu+f>09Fe77ATf|8GIelebPRnmL739t&W zKXQ>-TU12bhszw=oEJAYKc7C1q1jIt9rl9n5S&j)G1Vxt#mOGqp&e3y`Tmj&y#*iM+0mIC{~nqe6k4RP9F*Q3kv`Ya$!?{D7$VU2gZD1N$bHQ-1ML_L zab57W(P=*_8{-bx{P zs{2K!=Y!cknN0(*NiA3xyQ5&Yqi7i~ud-t_3h)f$;y+507X>Td+tGLuuXvKmEhajl z_DIcaMkys{A|OYg7r`0+805Z(d0~q<{`RJ!o3k$|j84u($1bKtua&!IaBqR8J^j?4 z#oS7!0_|^2zvq)rH`?f=0@>*!NAG*?=8b};T{P}2XT?y|XwOWV3jg%nmHAGm03L|| zMdRySpKR?{C`;B-%wjEC75ddj<bKPKuY0 zNAA;=RWN=I%)tX74z+uk_x7?%AsMB~BzuaRE|9l21IuEV&w;a_>=E$$MQO?Dk1gqa zfZHQSCSFBP*8*-V=x|0D)8ZM!#*~1~u5kNr@RRkA7%PwUDJM@L1e<~6DGe<;(@u=y zKOG}FWo6}|Lkn3r>}Uq3k=M>WpJ4-qV`-+*mSJR%5)#lGA^jup;{6mxVRc2eNh?lQ zuyUM`DyCoyeH`3GGm4v)Nc?`CvG(vC6%mn;1AD9NAOP>kZx_4B7ivpZrLm^IxB3k} ze_+gK(8KdXBL?i@Yal=?vlxZXspX#8^Z^|FN(oFa4%`$Jv1q*_{$23Kx)7G;-f0-& z#o$aThlqVo*^O%P-MdhI>-Vp#vB`BI-^DJoBVN*Q;DTfOtEC5PcIOL@Fmmr@pwg)X z%>L%@gYWPws~_m1Bul=#^(j1OQ|bp6anw)BeUB%E^%bcitNV$$Ka6$K-MlYgcOTdR z(!m^^20o$2W2^>A_9#ppUbGdiu=Hy0(`5?M8xdPQ^^XfynOuVVU$>tC7u4m@oDC{VQz(i>?h2wQNnww_Q5-` z#SDq|Dh6WIXSiY3Wanj6Jj-^BRhVK6w#W7T-B9_G^u_`=>0rLsS z(S#jw2!3?-VKonMVNWhy$rU>Vkpm&98EV{}b(zXtwZ4~lXG9#VE2AsClb3?l8+eJGKyOm71&U672%~Z+D-I`r^lQ-Uxw`X7Z zmOb-$jh1qV^K!%no}+3S8c7-N+0Av*PEmI z^D(FyX_qk|3sF$*=W>|}liB9V5s9N@?M-6TarjbfgoX1v8aPUQ6v0YpPs3(}dyf}5 zwJ@72T^#^A6gl|uzJ|zb8{0`hVVQstO|7Uo<@3>Le7!A!{m|jOx$%h5`(LtVXhx>> z3%45rf;58^kXUdzOzbWEvF^y7OYvhx^(iWajs#46I5OM+SEK0bcZXTtq;iyN{|&_`atPyQ8c+N?fC5Qr!n#ES5@mN+?so+`^jGb%LIZG4qzoS9%?H` z2q(DUfil>f==TH)w|0DfSvH$Ag&tY$eo6qMgy@4YIYtu`8`RrO+_4|hU6 z-?2rmv|~~!X}0-IGA!|mrtmkBJ~~6-(+R$u zV{MtiM}!N^0o8K1EsC=_3H3@^YnqS1GAcQ6uNC^tK1#U=;ZC`8`P)|rsUCDj84b;L z3^U}JnS}l~Na6Ph3*riCK7WqImMAQ4(Y!UUG=2-V`%{fKrsH{83YKB4FKh3ZJV2dV zmvvZ29QB#gzcj+K&^IgQjcXc2{XwPM(UrL~x^b7~wlRk%39nw28>#~_&V?5op_sZ? z_D_{sENy}vYfJ@=9-wmuoBXyTtn5sCZEwsSf2X8lEJFC4${Hw;;uRcID_9T$wi@4Q ztS{E=>K19#pIlL%wP&44{d!SP_>=9CaXS1TP^^x6d!52P>a8~h?1Gf_CCul)>4sFq!z&Ck6oxXvj08#g=c^5c{d;d3VK)Y8d-tFysC#PM5xYJ z0$eQSQMyz`vRg>Itx(N*(6rF@kJ63g zkXts>Usup0Hmt7m{u}Sh+-JmyhDVau*^DDs>-g$#p4ioC>=>UdOEEkzB0S>dFaYKf z0u_$utX)uU{Ay;sV>)(I1GKrG|FFO?V+OQ+IGAUeV0-4DUH;Y18;A%~`6z3wT11LR zf%u(z_+BzOM%{H!VKV&pL(8;W?@zzeJD*x;q0ztijICLCF85Q%nEh=o*W{+x+L7Vy zsew*i+5HmlW7)gHhfnB9 z_{1M;p(VbKXx`jRIJa2*BhlRXeP(dm=h*W~&y>u0Rr%r#QyDt)!skuT887xK=dD~; z%UJIQloh_;si#^SJJLF8wGy|+a8#c&m1nC4;vccY^^j}1_+>K4^IiZT0JXuc`gZ=J zX^m&>92M#L(a_l4#y;EWQEeYdWeU&rOFIM|y-Jd`N+Q@Yeht%`!fcg!3}kdELDN<5 z{fs`Ca(MMVDf;I)?9GISa=kqE_Mp%aShdZKM1|!uomE}z9V%Ws&2>EDdMx@>bs~`j zG)|E+isRnbr3CV9qAlYVPR${Kw_nc0Htcs&{l1uHnO}K zetL+L+rlS5x>q*tRqR0|FDxEn?Sz;AOZ)L}@Y){y>NGJiS$D! zZHwo%BEVuNhNqXzV>F5{>cdMpLtD8%zN_VX27xs70eU5Q9T>>Ds2ftI> z9N*~uw>-R_efct_=*rV_mE}&8(J2_`bbwSnWJtL5NT-8f|NL;IJ9HFes&>rZj3zpV z=V1f5M&!6hDc5Ht?^gPaFQxJtob+(d^eyt6xOBqVHFGj&yxVC^g+&o|?-z0+pbg}O zod}99AJI+(rGSq@xPGCQqKo1M%_!#73(*(i@1*6WJ5~KXwP?!5RonP?a*ppBW|^0Y zMY~wTDt%Nw2oP2exc)PUHydDnNx=7#G-07&&aiI&8-^0=6nvY)g;OwS?6b62Fce_? z4@Ku4Pu2g&@w@NE#pT-bUaoy{jbxR3x%MubbnPue69dkC+&}hnSVI1!DPh zu9B?5gWBvZ$&#H#X3_xAfi0CM;{5n3%7R$&F$=&OZvN@aBIT-(X((M|Dli305 z@z0lT027U48IZ&Ns8ZXEIP~`8#hzs;szn;9pj7nbs2$na9xy132XH1bxFP*k7jQ8r z#%G|ft%f0sm;@8*NTuzLwbaiP%U_Z+j(;2XHw+qBhXhy zACI)!Vm|cBl1{yG+^?5#fdI3lIJ_7RnJdHsrbR9lq4v?Y;WT_P$H1(?{{pMJ5u}X) zTc%m&R@d6>3~+9S@VhI27ZrhNczjTW=*$ac0o0DU ze=AIru%K?^a?Wp25v=~}KEmTwXDoM!P|Se1>3G72YKPQp?Ebn!W>7>URC-^beY;u_ zG;wh|uPuCHI>~G%EnRF=xa)Ax6C~3aY|RGw`alK+_?7HGS=SJydc z9u`4@q!GRivzM=4c%{EFLw!n@d+-0y@A1oxxGBZFkB#0hnZN?jW#Y211<|H%9kkxR z&@$Q>%|^iT8iKMW&YU!U8O!n(B6Hz~iiR5I+#v8}dDFb;B}K3(=k}jP9~NEHAtwy$w+Rtk_w$ z)Y~@MY4&ApYyx-)4cr%379nN`LAWr0lJGF}+W`wh?5i6`lb9@fPNIIhJgLsVsDN$D zH4|9Y2;i`x*&(lKO*%onpivD}jtwe6z^(F*yO@8i#w((RCA8B0r8F7fc{1&$LnBgq zaxi!CF)d30L!{cKaTf$Q6~2)Ld{|VS;Jy)b;enS`TTti@5%JQ4VmNW>;g-!7Rb?Ni zboeFNs)*E+_hkXVjc92AmVS<-wcbangX2*knv zl77>b@}O%?s~T=V&dItf`1`Z3(|-&PaRXF?bcd&v>mA>$QVNWl;$Jrv)rH%Xk~)t{ zfm3&6v={@bKPt;_hmz++t9|9qO9zQiM(y6%ent z@p5(nE7MXhMNzjOB*FxWP=Sg}VYk3dW3DwJ@_hues(%BW1ca^>koK}KpOL?1J86HZ zUptf-v7gJ01Oz{lUzkjnNTmYsR9^50S&@`)qJ`EssL#yU)Ag1uV%cPF{6r$fF~W%{ zEfPsNAP;$;b8e)fm$L(MPs@)DQC<<5%hzt!&v@)m5jP?m$k~zy@3{-$5>KO-Spchr zw~-CQp$@?jD`Py9K3puOH2XX8QkX)K`ZjKxwo9b1T~iWEg*;N9^BE^FpdYFLf;J;_ zBj@IgBMh6iOV-tIE?hNl82wyiQJSLsCOsT)rF*3J|bdXUvMCi4~#u zxQIt}m0zT$YO&}Fh#$BDddlOa!luXp<8S;v>&x( z7j)D34pU*h?ay{EMLkmcO1|y>7)u8fFkJ!d+}ha)w`ZkxU}Zxpb9|>P@(yP%wX)&f zRHl~*$Mb%n?|k+s5Qgqr`BGz@rhS^t#oNgN5{SGhk;i`r)YH2e0%x;;yiL^64zvLgt`LF=^B?{B5YC?37=Ak{aDH)r`_EYB%x?Phw{cG0uvLhuCj!iWLxZa}B`+=G#`e&%xtv zWjjCe%S^p48S_2L0jC}Sbctg4*oAhKw!i?WnTqrzeQKm?`bd0nlN} z3*~g*P5?-N9~z?fh&so=Wln$$ni z4zU-oaF|&g3eQYh7k!YLideunwx)68UxAoFcb(7&h#fD@yPqoUL#T0r&~}>nbX>Z3 zo5EjyQ-H(MHiXU1p98yE&eV&#{keGr2nZtf*fdL!~bY@TBiz&ac zzd;u6g69nT?*B~$hZy^w)PZy#=rUnu5-R_lt{^~{VA3QFjXlojyk`NS>%%+(uc|)C zPWgXOfb@eXRE|UpXDR?BK~uOs(-Akt2FBxrBre-06BXkv>@<41g*02A!t zAQ(@DK&%iOOlf>G@L=INK~t1KDRs2d~v-K?*M4yfBk9^8~j^SokEuop~+q#VGHO4 zLaf_Z-BE%Lciq{D_lcP|FD2M$N*ioke5)pF&ZPwTflD+N?&4jVKTozvg8 z(ZBPjb0+I`Jvvp!Jnx<~-29TX#ln7VfMQjwB44;hzzW|w_n^WdN!IGIWFm;TOy8e$ zC#ArvNS=G=MvXGqUWa`e%-K$V_$`g=4cS8``O>6x0lgxB%VGt`2B+Sl0PAb&J|iW1 z#eueEH4Kf}&$*)ZL1X1-wnVjWUo+CX=xtMme67l(NY-bWINW(&ZIl2L42@$eXa={t z<(7OW7~k}JPW5nJD&Ew#kxeHpy`B|q*Om>RTIQ?v^+<)zoJ8A{R!~w!Z(&np=_76# zYT-Rm{nl#F`_pfcu8(XjwEB%|Pe>YW-R}q*ZDO@Xzevx!VvI9<9bOq9vP8|Wb>A)= zHFBS|k>&Ar_|dsG!ok1i?oivrY5Z?-0V}zC6@Ck^9CY%k6Ji5{?ORy|%xZ7Ls=xb+ zoH|Ab9xR?$3txx{q>LiH)8!|#vc-5qrb!T|c67MnhnpJrJEr)Xa&LG1^EIp9kjl0& z%nmdO7IP=FCI)#)NXH>QOZ?0b+L^z45GqeIQ}Zu-q14Do_RX#^`p0(1DcmXv<%IGW zuMyLMnr)5BAMwQ+W4W!HV|RU?9PyWpWO`E?bR8wHz=&PrSMle3KLwOZAKPde*xE!5 z7spPo94B1U3V!k<(t4v1e&NRkGz+H)>6rjLV-5Gy`E&1hD*pY_sq7KV!by5~+NQqy zcz5=}K)U5KS;<(7{+u2FxTLo_cxVg5k@S7-*4u{bYMN3gj9lO8-eN{(flS9LYKI_2Dj&P2 zkwti<`1GT`{#e_w)vK;=lRmf1dzX<9_-KZa6(g+rBP~zkWFp(rgbt0hvA$z+i$5zx z2XF?+>=HK=lMQ{KaFyJ$AJT-&8|>Z@c^U!;p(?+>-Qoe>rLm#Htce$_sPgqM>CKfXnAjQizas%>rU^a2|zAn4GIqVvZ2s_Q_L2cb(2wl{q8&+IRT z-2YEbKnUf-=RUPNpAeka8^EWOLLiRbz3}LRxw4UQb(#>FjS0Z07fQcws%MCf@BoqO zW2pk#B1|5q)UmCeU#Zv+T=0L6)tQ>}R`{#)K3A$w%Y|#$pBYsR2z6JQ_*mfeUoF&l zLwFh?*ma0cGmu#^T@ZTJSgh?2H(>Ph*cHIM0k>m){id`uf2!ppXrQEEml>N<+`p=3 zicF95-8!`7_o2{pOW3rQC}&CUtWDQ`G0T7YZj~=IWW_S4`@3$K_6FNd$Qm>PXn0xa zvp`$fZU?4<#jk5IO5A5I(>%^AV~m%s7Ul+MzZW&Zf%rv;pwo&&I72>jd%UqT=pcjR zXy4L2H_XR2#I2N=PBlgP`Le#ORB(d1JumqHNe=8RmJ1^VfuX?TQB@KOShx%llgk#N zp@SQQuCJQLs}lk^%!t{OZg``y_66-!M+66?)ws8aWd27^VpVZRf#cLLB9T~u(U%SD z6yQK6U{ZxpKtVO%dN|1qT40lb72KiYy~x)NBvh0*=;_M;9O+WJb@YS@@pz%20{^{j ztYr%8ZhWHX8sP3l40hn$&BbxoWMhyE0an!Dq9=dS|M;`m=}%OlW1-8woSdlP@F{Jq zsIGk6=kci@@=-KSx*jSCl<)Wx z$pQ6qBV`Dz3B45vXY3VMprqoRWzVEuguOT|RyC$Q(wioE)DVW<3V|CcMnDsyz~W5h z=;z}|Qe*UBhKQPLpV*r)sI{(iIvGwv&=n4EyPQhP63wTOPz@`kcY1@x2Hn;yqzD%8 zn**GnKpv$FeE>Yn+$blCx+)U`h9uI(IFeLJIxj5??zxf`L}(Wm#n1juwt=ZO-baRS zz5s814>Iw|R{a;v1|>KHfKfXT_3|}!VU78-w+o>%p(}uoz!yoFil{K%QlAXBQm|W< zafPnIc;=x=?tVKBndm_4Ed1s_;=U6-J-}su$p@qu6=dmP0Msj}v3cqlm6GweatZrzO)Hl7KLJ-O|6|b6 z;lIPBdubs_7|0X$LH;{j0kwd| z)Mjzr6N`+R7hHBfVeNwV6MmH26Q5QF;M-csvS)!DAN8c+9kAJ^msX|ui8LSEb`L%> z194?1RoTCv>*A8J;LYiHNMmf6vJ;K-G-F^`{Unrn+h5;wp&x;ANRg%7SQoxe7gn@` zsykq(6sxJ6PXG~43pHOX0=nOq6q2dvWD4LZCW8_LI z5x_|etKIryC{R)^x2AKVhrJ3g2)9$cT|MA@6t+B<8w-qzL-2(X=_x0ukUG~fH#-{& z2Q?SLqgQ^EH2}{4eF9gJHx`L^OZBwQ`Mq5{_tUdIAjA;>M7x!u6CF~}lb5?se2Vds z)GTXDh0DmE{G;8cniAD*uc`9AofEO_^J?D{Bth8b0ocPl#+M}4Ah2v)JP|6-1SUS0 zB~yS$U5+l`9gOWW{0^l2{-4MuXyec~9*6Hl0_5V=l8-sy0XkwlD3iVED`vO~_~$p^ zCIgqMfiNAKfJzS0a-0%w zoe#qN<>4#fLkB}yvMwvoqG-`#dngY@8JVggzyV`Ne~f(bJOiXo7Hi|nFT}mZt1pj5 zCSnF-S2}INPAG01nhi)ib97yHM6y>AYlYKueqB}*hjux~R`_r)qj8|di@A~F=S?x# z_qg0VP_2nbH=j(*h@j*y7Rw(b!~och1CT3qgk2d&E6^iGMP`&@=Tw9LsFec+fT92$ z_<=Sta?UXT2`Ws8j;5^=32#TYn@T;@~xWjL*L7@ zcL^k8&f@!><)^y#kxFOZA6s#d*>9Hq{arGvc?)-5uC-mmb`8^81nO!iTTqvAo8@~J zqZ4vE-l8=={iuUvRrk{EJy)`%4{qSIqtVPl-kNlm(j4 zj*mFUx69v)xwk17a`MNshm*2~ky_SY6dmcB!;ZX0vr2kDxV73oNevh(O`zT=DO;a^ zuw{mO@I(9bEUK>^hleaXeA5ll_X+SYz9dwrwg?=y)$R9E*Q{1 zhM6z9C)Svv>!i02=P{-dZ6OM5-aYSqf;SOe$N2WkU&}Ng*6b)nwN62m2h!dcrep`^ zk)h_s0)YRhKXva~9JeOF@df%9m{pW`-^@E+sclss3sNLnO#}m^HW%)J+Ala(361gy ztr+_$nB>=3+_Ao1LY93vXtmgB`)1FUf|tQu(6V`ZKMqRd%}Y!QKFFO4}^ zvJxg1S$j4rW{RgquIw}~ZS2+F+_RL9JEi0t|LFeFQHj}Yp8%;n86;Ho$-2y>iBKLB zXf~tfST}$uwdvan34KrUAsaUUMg9SR4j2Jjfz$8rBJ!xNm%ChP&aP>3ZduOp+NI{V z(ybpWiCR4a4g?Df?~&P=ZBQ4Yg|xN1dToE?DqlRMEb5pCiI83=;C7|U%jdRf&apEy znO2KkRx`;M7Lx3w;xj$W^oytx$*ob67ds|I>TZ+C&dL4Tum)#d?wZd13%S zi>)MiPE&M#rGUMZa|BOWpQpE9}Z_PLx~0v;2eXWIjj zMB9M@tb<_u%}?*#;sfI11Aa|$9L;K^h!8p>ydCXLv5^1z11sw+&nopY-4ChO33c}c z$pb+07?3g`tV<_Mg;+}lfJx&^7R0Np`0!^gS8swW{4pUBx1T9$h=%M)2d_kiQ~sou z`XxDs{uHWXlZkfcipj6z&V|(ko>(*gN5UB>Q$A1ZJhBn}Uf;$tN~t?WRT%fW z)Ji?!d|DbTkOGqd33`6mXE=l$o0H$!k2Tno(7Sf(?|$5W5AbJN;?#f58Gh$6Du^9D zb&A*NdE&MB)tBdd66{RLi8SHR^MXN?Ss0xNhd4ld%^)|oyr%`@Qo3ACaB(fi&*gVt zB>5)#{UU?9y_+6{K2A9QIVzau&-I$hv)s*H&V(?d1gql7m2<8UHObZx!{^<$SLgBS zT~|oTNu!F9XDQ%B5@5hSlxG$upN-pAM)QK}|b4*6@iQh=#Z)Dj~8RiRYd*=;%$lAY3-1X#q8)3RD zoW6;?BENIEtHESf-?RYz$dx%=DmZ={;)cP4erA~t(1JwLi<3}An3$^-c5G;GsVskd z{o+Mu$LPBn2p3{mz(G#wVwpN7a=1(G$f`oDKn?(^1~JIj0Ho#*Imox`ACgc{sIXlJ z|69G4Ka+0VdT`8z!to@j;^`uapK$bk)%GTj^tk|8FML1fBuph+>miSED5y<;P^*FEbE3`{yH~Bsc_V`@B=EPrVP0C&2>tzu=%Fi9)ldU~je_weK zIaq(H9}`iRS9;`*c_aeb$1F~~3xC-57tv~f?!BmWrSimW!tYEXqO-Nr%kTJ9)D78Q zd5N(?nUHSYMXa~Se+UbhzQ%v$NaRvqcPyrev$rMd_2ZSC_<8mJJQzZz#+`x^ouvHL0IJ;<=3t+?*Jt?TE9+Z)3EG+EFiUB!={!!x#zXoT2*F}g8&P)%mR>CPQ& zr^CrN!+h7GVTOU=EynQUKeAqa(^VDH?A~EGkmJG%ca}}xYE-_QL45WlXBX2G&z460 z4&~fFj7+uWVm~mRiO4HncZgs<{VP7^SfkMI@U$Xf`b#;?iwZkM9Xix^JG@>1yio@| zJXi0$H(vDn&&3+zp_eh}SMFu5pT))v!%$AgF80Y2M%;gfqVjJXE{;75cx=9gwr_*I zZtf27XsiDNm-;2E+_s#=yy<)>?Y3Nf?KdaoaOPd>@f(0cvkt9iEacN4%Rk>NPgG^1 zXWFuw`Jev5X7^}j;XRZs;9D*OauQ?*N0>#0fv4|K_Wgq%O+=LX9b7W(Jm6RGbm7BC z1y8-AK8qWg;r9)Xmhn|MCV}5TqszUoe*QsTZ`IW=4`2+3jEPI|BEG`jLO3C*Iwa}n zu9nXxD;2)YO}Yl>sd^*rF(X=4>-u52KOb3J@Gvan^aUQR?&dF#Z@%c=TF!ElTX6hM zJ*odOK2rRx{Q4nO?0e+LsB70A8H?~|1VwSMB|r0rQRdA5K1m_oxn#XC!GeWo%^O{q zSNZiwauD5pX{hxL_Qk&s*yA`W&#s2yriqW@qrFo~XEJF2zMF#96DES#{oPq7dwx{C z`&BjJA~AFJaOT4qnb?~VpG~E5R$MX-e(4R5o`0Ij_10ipQf>t~X!UETX9P~XCFk9X z4q1VD0g%1uX2y-z=2ZgH1BG@(QM~}@`n5kz$_V|Fh>aa-Hwsi|WlYl2-&m>x`Y0yo z@sbDSD8vD5MFd+>Ksz!CyuZvns9*p+6(OJ+erS+M7&YRuq!anZ-KxPSMD{$xS-QbT_B!mw^II7) z1wIHR<& zbqg1;V8nr=xup2qs=2sZ`LVb0fr%`?e2%w@5LdOVgXi3)I}SrUsx0PNG-15QJU2XZ z#!Se2Si8nu`;iy&+XBPg^6pJiONbwl+#SO6c0PxV?Z+g1zc*Vg?E<#b5V3S z!P^-wX_-p_2O_$FAEeSVffSUUS;9LbRYR+g`ZDkAkcP_0@sN6!WG7Ha%v)|uG^(K< z1*SL&I!Wp`qf$wD$(I>81@GYzGuChkNrvk6VYYD~QkTVFu}xWQ9arnaV;ZCaMO;r{ zNY1S;?$Kawb8R0sOX?}?0~(XkN;8F(lU#=Q>`GpJCYcJX4jFNX?5cL`yL^d|VGrdT z{i+ZBM0k(wFj5LAxLq{nr^n9-N#De_ev*2tzev#eC;oGR1}q9l*!QJIChn(;r!zyU z#NVX4d~wA%2Jx7g-o?SSYY!7q3%@JDuIp-QQOI6`oI`YN8TXk<|2G%=3j1ssBB1*$ z_T?#i+n+`!5L_10vE$SLaV~HU_)^{}^633$D;XHfU;U2Lq zya;984u=mr=(aioWmquH-W}Ip7Ej&d4%WK&_GaJT%1{0?HS96Kg{f8Kcn0svEx_FU z);1ha{uu?~d%SkBRNe_7@AfA{T0cXk_rDR16eC`4@FXmIw_8~gu7}xzg>#X^~d`i46??ZV1##0RaHY|kuh8Aio#E+1ffTjymk!puQT0VEoDoRURq*X)ij8AdPz)sZ74)4s;>6dt!NeOSmkEy?bT`^q>^IGpqy8a*U!|=FwJnBqbBO@ zFwL%LzQjzfU`P(1Fdtkj?*6A$J+QXK^KZ`LGDyqJ9y*V#4^pgqrVOO7H(8@K#;5r{ z-}PK09?L2vB0yOP?M6vcov3t3<54fr@t*JiQ-x!EY5Jn+#5~rkr+^ zEu+V6BiHT(xt@N)aVfsD&N+`{JZ&Fya|?s_p`FeM$ULWp>zbeZXf*BK@j#}v>f9pI zP@45BU=d9@c!bd$OY*t`c>t?QsX_Ctb=>Donu=0ZY(>gFts^z?9NH4ls@s(co|3&Elkt1R@!oc#GUdKAgGs$YrCuL+ z@tT9U!;5skA0?$|=g39Bq5Usm(qFBkLPZdwT-(TvYV1E7Or&wl$CwBoWP733(&ejuvf_7nunyX-4s*#L0OBXHJm%F~Vk3p+H29y;`> z>=tUAuV8`g*T+>wOAyDV>rh84W9AH#qr8wNvi{6x;E@&FtN__0_ak3x*;H@8Y{_=|`TLf^hx1pGB z9kDWnY}q{fbP{RN9v4nQdN>hNa;}8;+8!|$&GFGqWMG~8Y<>7CRO-SdIruRmkmE2p z1lLonn(m&(;}QRf>kFVYU1}WZ(q6&$iel|)WxayWz`Yl%<8_OJ&Vo;%aDg+x62j5= zCmz-YawXUtixn;22caDaIutEYUl*==q0l*JghujUhZefPLtajxFIL*eC9?ce0IWYL zO&-R_0QYHvrZZ&f%^}uwq1JgdpLIzE=DE6nlU9mp*Nd#9c6q(ET#i%GzkuM(d2%os z2-8q9VOSY4%=p2lH2RHX*Fb%BV0mKdistd!1{0lDe(eGwi40lVuzuY1aoUgMMUY+! zLN7xju7?ym2;me)i5+JOLQWI(sU}a%g04khQJXpbS5sJ{KkEidQy7+=AcPi{=Zn+; z_tH#s*CB=&(H2ElQ$mRS3>z#VV08~d$kN9iRt-^wHqh4JtcGP6hIR}EyyA4||E1i4aWGz#+G%V@JHFaS>A_zLKkMx@S> z)F(LOI>cfboiQYHxdND+KI1y`Amg7Cywd6NoVmW7yM8-5$CRSz`$~VoPfd3nY!L%7 zX9^CuxQNS~$cWBzaMU|Zgd1^`kd%%(&`T)OrmCyQ&&C;~HO4KZo#~mupyIrO&x2Ys z{pL!6b3OLJBDP36U#>?{a7;siaFpovqo7qnO845;Khc+!21W60m!%ZXn&bG^buOHl z6IUXDl|JgDFp)YtAd!MRQ$%WCOvzuC(w_~}e`X?%ndSMSQgW+`N2#x#E5Rugs2~b0 zPJy`qIoX)9xE+uV9|Vaxzdn?_r(*=?Lkocw$g*f*4*dBIA#P2u#8_qbpow9$m+=hv zHbR#aR3w*$(!hYMD5ZiP^;5t&166}oFCu#f&w^(6!wdaHPEa!ta}@M#6SNQ5 z5W@z29aC;g6NScls`QJ(NmeamE^|>0BpT?tgqEFm zYBq6n_{0zX2@%t`@GSsGJrufg;Cv(9{>2M0GO>0^POEGk)SsE{@LgS_EGl#nB0mi- zZU9Sh=I}sgyvcDIg!O73(ZeFh>#7^_aE1i>K0u88_JKXBfD7K(F z1^jZoHf{DI{}@9}S?afL{%+&lr=c|jWv~(h%s;C9zzwW(TD_zINC9w?`k^ANa^p?d zqG^~wfuzTWI2WRiOc3MwJ#J9Vh(5UW(;un7K0yy#dDX5%rw)sJ{qunN5 z!WE3i-m@TpLxL{Dx+FwVZo5K7>%S#7;WjA*NWkCZXN&x$oHiN^(3U37bO&S=m3zUY z_0p0MqOrAEFa{2UX*t2|DGpaM8{xEWuzOkh=DkMUWY}H;Xx%tUFQNUjs-v~G>I?>l z3DOKx`&yXt?m?4jG04~?|ol- zjLk5AD-)_m=yi<-ChiGQRM1L<2cqX6OwM4!mLda1B=@qNugnSx_&}z*^iB(aDKkRH zF|B)hWN{0T((^s3eYww@@W-?Xmt~)ZD$9uEJmIX)?cs}03}zGapaS;V#2{B(e42%z zjv;Fm1Y8z0$~mTWT}UXjV{sE?%qXzkNzz>D7z(?ayr=vd`$%cCT%mcuQ5NL;nX>q@ z!DuyyO?_mUCaQsV;wZR!<_mu{AKFUeL4Y-Qu}|W9^#jFB8SL-2Nnkez`GH|`==a@6 zmpZ%EfMLm8Js&^#`4T{Te}&lXt?+0ltq&e}#A!#zxk~iHeexKy5@tWt1?Y}$z22fWXa<2F&kO( zdYY{!UsVbdDo1QF`mRT&mPMJI0m_W2ksg~zKfY|r9vW|ZY_Y6tMBuY-mRK=3e&t8p zhwELiN%KwdID5WxU&XaQuMLN_wf3;?uh-EMA3g;vJ^ggO8-UMx?}_UrF*}YQA@vOT z38vtUhok8J;4sG5u{%P!jtN;HvC012KmFKCXTLO>Jc=DVGKw>m(Jt2+{uST~B;LqD zyK8pL8<%BUcAM*N2GLp z`h25*Wnn7w*A!grInL&}+trg+IZJ&H15MEZaO%s>r zj1R}}YRt47${JH9#%VJmN!LUBXS7?|FjsL6LXS6MZZN1Uq9xdZmAdp6{djhKr*bF692XZz@z)_oDf^~a>pykQBbAgq0_)?oH z;dr^P&iqy1#FBGLr})>^sY2;kvbDZA@M5o*mls%K2ZEc0h&VJyb3rF;MI>%#u&2k- zO8sJE{O%qzZ!f;7@R`r@sX|oGYd0^Vp_49nJyRkWErM%=eQ1au&ZM=5Ij##hez>iN zFLHp_|2WP)AUO4kzkdB`(uBw1e~ep_?Y2Zv%`;I$hu4~6Lb<;xzj~axdqQ~wsj%!8 zEY&(?EwJ=}Q*0mhJU@I%{%|$x-iCoGJQpqC3jmr%MH}?V>0ONE+X3(H)ixTwPjA2a z;|6qvGg41`CM13ln+{eus{qi1NKHRVm-*AnT`2I3U> zXXT?H?k7{gC$7`?RKNRPJaPWB%2wI#y38q|+BT3I)sznoflu(?$twY!`Un=4D8lbR zC%4@0nQSjI8?rNo-WO=}YibjKC>1T8`2I_IGRfWw;?1nOUsGtz07(V3G4<8*{+@S9 zfgd!fWi~*w4JhXfA8BEig=0XOCm;W<#WC_KYQIX%?(@b+ZBm{~1pKi`#eMvtH|r_+ z1#?x2)c$rZZg66&!krPEfM}Q~e5X(#qL;cAa=Uj@4bq)x~9%BL;* z?I2e3pKX%;=Uc{Kg(Fj~pZ~6U#~&W6{k!n<K|IXB{u?Zc9`| ze7`JKa8N&9iBFL;l?C7T{Xwd7O0@W4`25wCNQD)(4QuEC`RtO#x8L8@*%fq&?PA5| zB7oZgx?~y{3PA~0vXQSlf~FbB%K$-t-9}467*eW!;?5Ex$%<77K1%O%qN8ILJvw?)nkaaXx-&SF(Hh)g*&;SLxe_Vz_jPf4%)M zNlk(3tO=?zs{pdwzS>!22j(AqCGj$xAnh4^WS4iyd{i_<0-63GE*?+Oswx?TaycpG}|a1IVbUJu%vFcjdvfx``Ttm4?0@nkAc0{*r?$ zPWH2u)uV(K%1cVsZomM?ow9BpmlSMj%E_%!RD!c(tezb;2+Pnu8^1B(*RYEksChWv zuC2_jfdIch!%~8k>cuT|!>!Yay~O*%<68Cx=BC*`wMJJ`ZSHeFpng>)=rFC*ublMc zfAqr6I^x)$$|!D~#bEGU_0p+-h2+P9E1w-&cr4p(B&|HdpQyM#=9M7T=E)4dK@*+@3rR)67(E9Yvp% z3-*oGQ2x$Xr%X;`-Z!ZjC)djmmFV|1Yn%T#s$qf)BPtnF5~mks%FZA|VI17cjZJjV zWXH7X+#^5Om;1tM7q|L8-MlDu^G^_%(5beRE|#hIr2)MpY%|gqKD{GT6MSI&XWJJ+ zYiajy!Dh5jGqF?#*fX=0E{rLN@H;P1Wk*c$6}44Y0QBG2j4RNGJePUhE*@f&BBqoU z=B0z7BPIp!#cJ54srdVFojEXGqcXwcDyPmeT0!CqDrVA~*4%K54E?yenD7)3Tcndh zCX|!7+zV2U5J;FN)yMOko{7*T1x9e2LE6UFNDSS@+D?5>e%BTa}HJz5}A113ie z2;7KDm9@bZU%z22lh5B_S4GKYZkoW%qCiefRIp0VfZ{vUabf zN#0(>6pRCeLqzbl$P@#LFR$i~EhyF{y}0cce-9_&AJ|Ro>7IL(euQMB-<{g9Z8R%A zvtJVGJX3d#?%aG*--7gD;iF{Ig+ka%^r^3FpHE+SV%c&sWB|MfF6Cd#OgPE4+%!ad zte>r|7z>dz{gWw>t_igWUF+vQ;$Pnv>aN29Ip`1 zD*vNhXtAbH_DY%b(Z5Avo#3e#8=zG!VEp8FMCGgSrj_Okp6umxrD(?rV&r9m8yJ5k zZ_V)8MF&dZLWzA_N+Sr4FQLy)V$?--!$dhkPX=dG-IesRyocm9yG~wpmT<7#)sAzp zcP3XSJAK-7TAO*7$p1u0kB?Wm<9WAFdfRH3iZfqRnIHwIA2u8rAy5p=7MQ5l-nikd zPt5AwoX33Zu(vjZSMrGc^qiLP;b;lD-v6J=kgR-k)*Dm!nvM%nKzG83zX$ZAtPn2N zN#hKp6gpk)2>9{xn>}s@@*sR(rZA?BqB#wlF>`Z%@0=z1^GBIs8Otd@%i9Egk?+%Q zSYi6!`jtEf(d=E3miWuzw-YG}5_|^{^Cz4*b&U(%E7`MFZ5o5RBrZIMIL^>J`!oKU zrOy0GEwA?aj~U!D*HG8pW^w{!YiTL-I$J&1h;pL82en0Nx)U4c=E)5c7rp6m?P*A< zH(HkombpCy^P{bB?O8hN__6)o~9sWzZ;P*B$oX}x=2s=Bv@EjzJh=ej0Z{7$F9xmwlZc?v}w zn0Nl^ie7R2`o*Eq&^=%b@IL6FHJ=$pZHx179{XgZAXVs2^@0fZq<~S6%_Nnk^?aix zCMOp)I^W3A?V8k_G!v=B4+)#^>9T8DHqvalC9PlwS78=aOUlsqS)N}!Kj}xNi~^M> zyX-f+GEbTeE66V8%an1>WXgWGc-?~7`+j6IW0!>YA;ixddsg<- z5T75CY&aX=YR=vKxZ~xpoaM~H)b#A(rlLl24}epLY+b5-AT5PL#o?|RS-$K?3Wh8^ z6xpJ~W=6rU(`-Xu%tAPD3ot=ql1Z+6%02%3Uj`MDzq^X0mOo*>_59*EuYBrf;9p&2 z&vjr{-Ixyjo9o{}9!IoWl;#}^3-uT`wyoNlstavKVUdoXp6^#Iuu=TR)eR4<29||^7Wia4wH^H?{rCF2OD;q7&efeDzIdf}N zq9sk7shE*T6|c?Yw`lIk1avx}FGk;%o-{o}F7`|n7G$beMT58D(UjojdAZc=J2CLxcjB5`*F$#aAjSP^bSq7 zoUDYdRNDdC4%EpqayT{2em>+4j@4aATH%{c}iVsd6A2R$OU*{FnR2#1CBqWf80HGHtp(9Nc1q6i9dy^_PbfhS~ zgGuOBnt(JTAksvn*UtdbizpynLlG&0pfoAwXV2_|ee|ENHM36cne{&J{alxRzrOy5 zTFya{q4X6f#}Kr93o+XCyeSFZY}E{}$}soh8ISxgD?gJRMjeXCb~U4xQ7?dY;3mQh z4%^2f1*jJUs2evq!62qRU8Y;>`5gPN7*LsWLqK{Ijs{aA?Ob1;liaLQc-ITJR*k*V znJnG~BA|xr@}mz_VSNY?<0)0EIF7aL_A1#gl@zAep-y94q)Tfo*ma)^Rhy_so!w}r zci#2!o2VYCN+Wqwbj-V>*;$Wy|87cU|HQkzZnMr~6g}8;5*%)P#Vm!!84Je_??=e> zK(z*th^W-$-ri&`5jytF%wEyjWdak^EB?^u8T1-3S}p{~K9D=ZgkvV7<|d2-r_a=$ zf@&M8of>*9jcV>JC?Ir7afo);Kj-N|eomEq^_MSgl3GNi@M9HJ+w3iKsK%F?k7Aur zhD;zUf&1o+?yXmeZ*FIweK5LXH?^j1D&?q`GW0o_^igCPbq(zpe6$>+Tr!%F zvd=;J457+prY141S}e~TsdFD;z)J4_l+LLrUe44kh2l%3VY*|oOvussWERW|;w9dp zegid@Fy{rB^J<%$8_du&kJEMwb3AD7K&c(qWLDKA<`*VYHa;K7xB?Tk9952+d|(|S z5S61+xoZDYY)<68Ytf`4S&13ty)c))t|!xN;T^uAxL&RpvE-!DRW{-doQzr9bKWw6SgT$G+kQLSf&P!;UbaJNw!_7? zAvRVcyHlg%w&UYz4ToPerI*HO>^^bXEn!=OrAM3YysHzm`{H9a8)Y|_W;b7KxA4Yp zvD@zIp{a4Zue)~Np2?P-+pTcfuS(dj-Lqdeu>WpnzcJHqqrbe7X1`Tzzy0QGi=Exh zxc%<3{obzquPdWCjl&P}uI+)(*9nc~9xg^NF^6Lxhm$CW(=>;_S4QzS4#}Gm^Yspw zyY|z|4&+M*04)Z{P1>bdBK9xB2w1QXrWtHU8I6IaV_+qi-Fu|QetY-?hQ_|>pX*l> zMS8^7e%h}X21&=S9xtxtCn9AWSstyF1{wVJoIbxOVs=|0F_R8oL7CXlt5y!*wXJhD z6S=VVOIF7HDg~XJNbX6izbXae>onyis~p_vJSrgReLUBC+T7`Y?k){qyhZTU#pf58 zpR`lcozXFK3`FSJf4hs9G`2Vs92AYcn>*ULj^#VWKM?`GK}<ti(1bIn!kTpC!@0A;_86!VkTxSm6&`^4<#`uJVx=a`N4CzT*mDaZ{HHczn6mBsyP zp{?j2MP2+xjUj#6!>1J$g5E5p8Sx%X+TZ*y-Iglnl^wg2t#JAoaasgV?{}jtiKvv& zTIKyxHSTPOi~je)D=U{8>KTv^!I1k>6iRhaeiY;Z8a$lg{(|=2H7r)E4PxmF>8JxF z|L2w?=gDjZzJH1z7%;Egay3HbT%x%0Fdd=qs zX0Xey>}??PIq&sE0lt;&gmd z7Z2C3RRR=zA=-rP33hWkmLGp|DL!a=n@iz=213o(Zat>#zNT$c9*LV5N}fnd9XfSM zIG~X_LmZufALPd-|D*c+5A3o-#h-X=mt4wNgg9DAaOO`MTb95-eZtP4btR{UuU5vO_x zsma^3fDXGil^#5-`H7@|31U(ZIKKZ^Tg5jO_86!&f@q6f=B z2Iqg-(mSW${%dG$0Hm1&B(XVJM}y4wV~H-0je>DIxiOk=IqO8f-}??_C1yOa`jhkw z$M3tTgo4~hf&y8p=RAP)Qb5^0UXkY>&+2hpby)UOu-PQ;@0cuNGcZJ+hIX@>q26!F z12=Fic(WOEwJOP5bEgPGgWHc^@yFM z5lFm*KkhKtXEG|aMEQVOnUC=`oaDhlCPzq|R{ELc;qQ#{it zNCCypYYMASYqO) z;<;7)`t*`@cRY^E$*1{l)jB7BPWtIE_{M@eihR zE8`JY9?#({A)`|LDu2PzTuF!C)a%H8W$n6kb*s$P6iyrka`^tM5%U*RlHS^A7kG}? zeHlB6vjmlNF?A+Svkd+kV=(g_5f3{vl{KFG4S2)*S$rU4^9p?!&9;UboGZhu*nGy6 z0F@?8$OoBM;?tg9-zynE95$n4mDIhs`F-Tsb#=1+1!H-#nW?rr>$CbEN1ck74cgCp zFlw6GtYovFm`gvc6tQZhaWbK2jb~B`TB&-b6`MePzcRh@RM@5rDX9%MKkAK3VPLN% zlW0UYU!?Ww3b|UEYh&mqR6mZ6G&yOcame1XybS5PQ4PPp8lTLX7~fF}7myc` z{YF=w!552=zz7vEJlEfVi@2Hjs)3&j-AW3pOf&AoC%$U6qGP?3eSSUTkbtMYj&T~{ zbANRbOUXHm>5FR^!U2qf5&H>ZZij3HmpJXK2}>OK=u2322Ubitg>FWJvAL zW6yvxeCL5;j*WQh$msh+Zc!Od$@KKbg1PA6HohxXZBxcf0dpmx7j{P-lOX==638n6 z9zKBb5uk}fe2F5w83xbi=;xnGv-C_01TP6%fx-SweacD&_q87sUS`{N}kHtlkj|mqF+2@H~a~_ot$^ntGK*m@KTcYUXo?l{tNlfw93CLKrXyDkEN$ zz_wVTsgQx$&hq1B=y~^AM{k$s_ba5U&=ZtXE*Hm=@ep4~=B*vRC$;-{%b=)IIP20f z7FbbPefE@E002owMH#0+9qY!CTXZaOkq>e*<_=yAgZ_%3>KQoRsX~;pO2w}ivLDcm zP4cM*RK$`mO|4ynFKm0^AKc9HEfQ1{69Fle4eDUGF%Ch?hT)rHBEloOHQByVPFlQf z!@z1S4&RlVe55L;IJ7@BZiwea?L*bqQMbQ0i9a!x0=A?-I&VU9uFtps5HtVRzFC%S zfA&Mfmq@Wzq2INrAz(IHCLSg7Qx!bvhr@}weG7uTGEOt!wt(xISB(zSUna3b5tC}= zIv?49p$^)U71^zCkT^hv>JN^45mPAC|=?7{)V(yy@H9OQhRUvI&Dkioa{^oWXhT46I&pjOI-$*RyI;MFS zLw38%rlLZEGb^bNjUWWtREDok+ZR4=vYJG7Up^_o&=pbYR}zu2R~Y&0ZoGo2pN0^p zGsWy2*nwUO|DcNqWESURv~2svtbdU7q?|}8>RTep6v#dXm0}dg!2SfkMDonkg9WAg zQokg;J?VdXCvhnD61g9@_!BFH-0q`(gGE8!xlvs;hTiFu;+FjgF4;tYkalL}-1B5H z88i;DEqKp76bSVB3}E<*2XCxMfwmZ-bM=WDG*^3G(8RfQ1}o6VeJD^nw18fueSo$1 zDU)IbVDH~M1&SpIOn{KIm8{b-VnWOx0WaSwoNs5j=!2$6>6v~;1LH4Z%*bqKeHCT^ zAi>uW(s_+&ck4kFtenm?F@qS{0D9))6brih$$(C`BG#m;=C-Z2N`$=|vh~7%8 zjIgOf7mJGR{~3?^eHTOnh9)swILjuCsfV~AuU%V5i`EwbXlg0$n@{Uf2}qy8^H7TGQoV@q zdXrUkZx1W+=d9(uf?$ngU3s}r3`)SHD!i)wNTv!z|A;DXxI*e|9qVjM1PUw-K*aLJ z%D`F7ri9>-FE%)sz7!0bMSw_H^|(-_0HflA%3i9fAU7&v%7^%h)?#C?*8$AkOJ%#a z?QTRYj%GOy163_KfifrRIYn)NE?X&}E)`nxh9cpK@8IwcEs z4cwWF!f7=4OAY_eh$9qB!$zF^6QtgdI;=wbb%BB<=ZE6smt#y>_dhfJqy>ijRdswU z#_=`_9eeE^juP403BRPMx;j@f+pSlt7LC1V{TpLIW_b?ceXLG(E%XbI6d`7LlL!q6 zsCUuF6)_As-lSncQo$SX?DCGK`5y>1zu-W6PL`Gm3R!)peH;i5cBnfI7r2Gs3SLw z2xp9Dy1?r18FxuS`lvftv;chuJ=5k?I6t6HSn|(3pd*H=!th8~+e8SbohQ3xf`QxD z=d;Id^W;lCh|6uDpshzibM3KiZIkbFlzN%8eQ&gn`s@Xibq3t7!cuDjfEFV_P(#bx z$5sKvsC3rs_rQ`kq^Ns{CZvEBX2}ERB`3B^ID$bYz|b}#5JKrY94FO=`iW)NhpB=T zMZDEQ#F6wTs5dBg91?l^Kv|@Q?%I>X;om;*wQqF{f<9wG_j+w5hgL+?zC8T*;p8b? zB$e_G32O-<#J(;bv*YsXiC`Ho27Ask;gRaRNE7I@0HQ-@q1=LnU9VCyTVuXZ^Vq_li`VSki{dRW0HN@Hp^5`( zJprG=mut{z{0E+Y#vz$4s3r%jCtRO^^!Va>&%rs3S`?5}k+}+Ayw&gX<2A)fciJ6M zG!V`qX=(zrv>!eYwIZ)HEhI@n`>J z)bhf&f5*%dm%kpXLmNL6FOCJM70{@tg(6OQ^1=B2F&(`qr2hTf;aRRGn(|IQ`qghb z131x0$QujPz^ZH5z&58+BS)2?lY9tl=Q5q62V0pR=NI4DHHiU+aw2>^Rdf>oL-yQf zn*=Y>QOrR{d-5;F^W)92$O|BZ>1Tv<_D8rd!pc?r`~b%4{Tf4< zIq}rAD6?GNJfI%{i~<}0`gsrlN(A8I!?fD62|X8Nehd9!DfXGkv~rjE8%!oAQ!k_b z)k2{m*gHq{;U_W;O1pF#KvQJL10^b}6EDH@X-gJm_j1{C#~7LtG=e_;LW6(}ys!NX zA4URU&{)t6+TS=U$V!WP5&)jI6GG!PT=CZrV{Ig+_eHq81PI0E3~ygyy-ukGibgfc ziFjM}*B*8pipvMCsK>4}LgqwTRGwiu8t$D#D-Mv0DtzMjSqkTHOLQ%~htWa2tUW1P zbdnELi_Xc%^)>DY7eUlIApqn4^bLnInok1W$4CDyZZf zR`uSo08lvg4#0ZX=Qs=?R1M72!l_U}zXZzDQD*uf&!0pwdO^B7^m;dwp{c~jiZ4dx z1~_2g$L2)S0=p{p6sY)@zKbQ}1t6>(tM=7M-4I^ESt>f*bAMmUBTVHuP2ES(5GV5dJrUN`R!7+eYv*aqd3O7HSU33%`|w^;~5K{^k|0jHv|=fw3;| zM8{ZKk&F@Jfm$NO*>>bT6!eIX!|EL;)d#D)&(X-CSg08<2+)u#}BW7EVJSU9LFhEh>d6V-^!>7yPy;|;Z4>|<5DaFd`tP=mM0DdRc7 z9IDML)o;RGj6GCY_K8>Jf>4UXuY2%OIevPR>XA2ugY7%2X60~U&^_S9$N@UInM&G* zh^?V9;=O#@nmi<4XBw3ssS3_0_RTg2Nvkn58~rD}AN zwl*dRzz(lX`{d?%)=@k>cmE= zs+GIRoEWU7S*o#|7yhSn4{iTmY>sWWYi_}|5@Pg$N-%06ECl1at(K;w?&zDN*g*q%` z85XsWSd9m}Vw2%ZSenRb^fLPEh}P?ufH@{0Tp)p8K9*U8q_i+^&<((~(L!>tfl%BF z!&>y*yiy11-61zjUxgzQNVm`OxE<@(^TvZyWjQ_;CISrFhu^N!hA;t_lq9Vn1=JnH z&FD0G?C=ex9@fwv$GY-Dfw~CM1hQpyBDFe=U?~>KhEttc)vO&-7U`j8qxXs&cQY7# z;hH__GR;a*>0-g{1SVYV-^1B(v~4JwL~NA{9(E;7+9n2Gz1W66yS>Qld!^q4m|sa~ zY1DJK(DWj9g?>G((*RiHXpw~Qb(o5w$=m3R$DlV@H=Tsb=xORo>c5heQ~p{wN$6J4 zbaEHKy-E*~{Y&eP`e|ByaTE>iLls-KRJm#f^7I$V?w8W`v#U?vc^FGOS8oH_19+-CqNI+xhDnL-AAcJ|Vs%9D_;e^M3nIV6Qf6T_I+jta|4T zYIXJ$7FNvydPmNW;038F`aM5?6th?0*Ngp|nze(J@)ClD0Kx0aH@-j`s+QHvvxq8; zw_ShFI+={ef#-)wA}I&g-Afp4z}(LCB7;tv>Nm^rUvK21@!j!epDnK9 zu|Kz@8*e`J(`TyG{^_r+FRiEkhp$Y%ldyQ_mlaqdfk$m#3-$JT5Ezx9-sTCGj{$r6 z{`p;}e&@uGnpi3=8*p#&&%Lz(rJY8x)kgVWf0QW#(bR|NJVS*Sg&hEC6|qBA>DxuO zoz>I=)gvZ6*_z1eWfGi=4I1x1fKl0+5rHN}yif zZSU%L9D}#@d~a*b1{&@h8veP>@G;P+Fjkl1$e1z6&OsJlM-~A=mMMms5kXcdM^@QE4+@VSlm%JW99cI8*>oP+^aa_D2I;*& zv|T*1TMM$^IkNu~Pc8@rAj|uh|jTK7?e)w@%tuWZL=GZghgKp!oS0319^r|Wu>@#)jvv};? zcl_wjaWSHWtiBfP`=iB|@x*tw#p#-i)k$y>>Cm51#zi3{kgT?;9b%A@p={I0S@T>h z;3W91W>8G4t?5Ci*UhlP5dX51u$oq4@rizUNchQt;9#sDYe>}8Nz`L0{lJsx2-zng zve6WwQSR@e7(=nwLUBJ%v};fB?`2~YECSa8Q}%Z&)lb7;>?Xv<{{(8Iio z)oYn@3nb@0W?`^ZVUX%66jotCt1ylIEnNItycSln(_S(d_Tv05V_O)3;*3BY{*v+R z<+boq{xcQt@rS<(2!CyJR`IR9lr_A9I=nKb<8@hh zb`xs^eH(dRU}X-YiNn+2R@; zdKwfu8`RDl^&*-~&zoe=o1G(Cyv|z!B3dKPn=K>SlogmVBHFV%n^Ph>%Fa7#B0AqH zw01@`Jvr}c>}+2=?_P`eZ|D5KKN0WG&)=UYbW>k+@n4-+Ro=W0V{rkplCH?`8?eOW zs>kpSLF1MOFG-AdFg-i3ejs`_onpzt(hvVTmJiQ6TSBI zaw_28M#R7MnCMOCf1B<~TTd=OKk3@6iQdeM-YNWVr|;j+X!Osi=pP~f#%=&-=x{^A zDr6QcN7Ad%=hV?RU&>fC0;r{WSV+V%z3%B9rKQ%(wZV&@rpmjW-D^*xcfFn*1(1(B zqmM(LoJPDq4N*RZ2V<8EoU2DMBr#sMXbR2b`;b6;Gq`IGSvC;ME1N7H_Sr=@N6fs%Ru1f@ z|6Kavmz?%>D#K!B@7|_Tuojaf*)a7qgz4e^S9;H7g3hi+rB$X?7R}+zUKVd`+JleI zn7ysuIogy@0{Ri@f@)uA{~q{ZjM@WuMqI*XUG3wz|NgeauRq2RV<0gt1pl0o&|M_Z}L9t^Gy=>R?Vaj1!vAt9eNtF)+G7y6uI;7B zW4ZjSkIPcMVPH$7`k7p3uE^odH0;lEWxYzOpW`YohniVdEbjq9jE_OK2uMEyq{`)mXWEL z92pU$!_BU5Y-uGcnK;DzX0myJ%Whppo9~6b$lw#FJ!jd9#{OW})(T1J8tt2Dnk0m@ z;YWg0XRWaXY>K8)SNx%bFm z+jgf`ABXiO)6Jr14|}K+=IrLh>7@jdSKzM zQJV0j47&mo#A;n0Zaj?&<}2qhoelfpr|v|#+A2FXyOw``EXO)!LH_mH$Pq86_vkP1 zXkj)R3lr9NtzpQ|36Uu-AD5H5*{6Jazoo+t8N)tJqI?NL(XSIg8bnnBtqU@iSsY$^ z-IgJrcrEnV&j6o#idPMQ_@(vr`^uX=^c95MCkUYb?Dl7CTN8C-A{KQGuMPh3gQWrSO?A0v|INM4(bbI#6OjF*@Hhlm3iy4ti!L zB9_KN+3C|$jhU}DD0+>67EKx0~I%-idJuJ~!U|D5S z%$C^?`T2*!WHtzeMIv4*pm$J>S)9_FO`VHKj1>@YG~qbYqH;OzV-}cT&SBGzV=(!k zZib`6NI?#4{oJ=X#~by|C|*Y-=T_>^8IAOXoAuO&mdvX*3>bmM7udDL27H` z|@-ic#Ly{bv&gI+&m?-fSlX4Oft zu#x}`zKM~xg8Qm!Q6hYTS@kT3I;m0@^%v!%pwe5;{HDbPP+q7?ss9ksju9?G_nnrCiAIzw zI@Cbd@4#cW*%@Vi`#^9~>sH{)vm{YO#yG*}Ahi&YqeE|@ERi=A-bA`RH>S<%< z`nVA*xEP6Ts1{aL;`Snif&gFT-Mb}f3RTgFhaR!3yT_x<wQvN-9OPs=GK24Lo2Jy%Bz#EOrF{1=m` zQi{+N;SGI&WG4xNIJPUF95PeNCGIE_QH{VN7E5pXyfVz>C$Jf`)M}qb4U+}d4Qwil z(gqKye4^TZRKSp9)x$tJX`FAy3%aSNnwxpgZj8laop<&-Lf>YR7m*7jSFS0u7zREq z;G;(v;>CUvMq^26>I-JM!MFQ<883Rax$gDx{7nH!PnXi@kbc2Az9t~%n5cr50KJy* zNLXY8b_d4(Sds9+a?6l$GLl->Cm4D%ivh78AoKzN}#}5~;uDaWLktptP zEi%2Uu{V(kPy9pvyesvX_6W7@^+s<-Cp{=D21t3%96ReO6s+P+_<61&#sywUzB0o9 zuBSSmR}oIM_I4yT=iiN)DJZf;mv9N33WwU+fE-%O38MS7|l;}SZ z{DkLX#nK&?kyXj|&{9quVHs;2CF@7BtX-@M3fmMjeCrjwhRz>s4K;UVl1 z9i^E>y60;D{d5KkeIV;(6N6`I#v_Q*@b?Vj6>)#nUVX}Q1)f181y%t{Y{MR*dVX%+ zpwuH#QqPL?pp|-i)QHsd7FgwQ$GbC&b6YG*t!GJ4RAP$393Bf(k6ev6%05*N()-ptk zM?9z8fz%P1Z{dIpqARCxN>^cO&zFCaHz34a1TP5Ak--pN4~+AAzlk=Fm)ef4J~F1> z;(${MiBe!lYZ#P2!jaBE((mwX;zTVSlQGgIHeFxET5{co{3~Cr-~aL1cDI zrnQ(bSvTnP#b9L67bJDV4|HrXHyt*=`$%Ci>*J5JNZn3EsZ1Q1bV4k5$8q*$m zM1mS;0>v9%`l8{|K&HyaTXj#ReLr1|g4v$pLASD{6#@+9FyO0uG0^%}DQ)6c!j)Z0 znz|I_ix7fIuDuS_<2z0dwcf61z*I0eQk*?~=2=QHfkotqBgW9iW0=w}&Qf?y-fArT zSU;PM3LZ_QT_*-ud#32tTf;w7K;mW1UY1&m!pq;5)_T6V1^ii`I8LcY=Y^vT0>d!a z14+TB-kR!Wk12B!2wuxN>W}|=6q`}9J9`xv!phvwsy#YtY5}-s57L)3C3@41 z;ia`bfe!G7LS9!6F`yBTsQOK1z>H>wnC-v;7_NL7a7#Pm*xZeR16cBq|v_!mMw|x9{o4 z^5ex}PJ;!SgYk5Mku(M}+E23)}IdWRB~D!Tr- zD}!2e1|i=}aZMC<3+2ZoOo~n)AA!CUc$q#2h51)sX;;z|wfrVX5=9BJrD!u(Hv^g- z#tt_t<^*$QL!|vPu@hBA1yZ!!gp+_F>o4*l4Bnzx|)j_jn?LNc7AgIExtg#Hi8|0GaTC$8eYAjX*4hFE0FtQG7;u z?AndC8eilqU50e(RBEYc0QDoXn&yNIe6qzO8Vjoq)Z>^5(T;P{()dUO7=K+wL{RxR z8|PcOx|=}Y@DsppuNN1Bs-6@y4PyKRVk{ewWm$KYrMy&+n_b!!i@a%AA?sQ*8$MVg zq8~#cip4nbrFR8kPSZ@dV})t8jVFwf!qLziVuW;AN%X+orl&&O=90HJoEKTszxJDe zA*Pfb&CoLckrN^ARNRMG<{Z5N5S0`(Sg^%Cu%QediIT08Qv({=LI`PAU;To&Ep>jfn+Hz^ z#L=j)V)zo>`BtRJ@pm8jIp>J1h(J7MKA|@shMlmo-=%~tR6vYL;hl3SMlA-q6jzAc zw;MAkdD4q4Oi=e0HeXHli;1L6nKy@EP&>E?U#3itZ;NZ3oYBFj=;p6RYO8=q!H>_Z<=?si*Jms{#4 zKGUu$>hZg0)2q%D?OsYUozc$tNot5kpIEtN`1`p$OJ`8@gFBM~fqN~&aL9uK_W*!f zPT^hY%~o5=#Hb(70@f3)O8Fx)2x`=S3k>2kyJiZn_my)pJJ`tyWwE=f3)u63ioa1g zXhC%Ep9l_-6Ajr8t6{z1MNM~tlu>`UHr+1Iv&xm1(C@q3m8EqQ6r3PpX6SFHT6EYHft)(S12m+#1C z6(=rbNT)Bps<`7UTz$&2JDVajRNC!SDl1)?V*ThA5rMCaJZVi{3@rN*B26jBN+BW_ zDyK)1t9W2tV-sG}Sy1!7AkfLWw%=dzkxpMeU%*(w>xW@pL=?rePidNUU79@TYQj4S z?Hp=-?e~t?Gpv@}QQl)+-(65owOD_Rt)4L=XBJZ7j(>O4^UV`X!QU3D(3{Icfpya7 zc^W7%hD<~duqBaa&cy{!*qy4GBZ}#4nyCw$Ef<@IDVlZUU+Ksv%i8~p@n=Vm0Q?exY+*UT1S~p$Lqq5dwlJ0BP7Sd1)Dmnlw0&m z36vrj*Z!Kkzs{8j9j#NHh8Gmq-7vmTb>|AJ|9&jq+_@H|vv}*k=Dmb;!};R-&TFqJ zmh>oXiPS|zx+NkbXAi4w&$Xf+o~0gs&R%xK_hOOnZ*=vNZTe&{2!9nCUgwv$VW?Y3 zP<=Hpr*#)^6qcN{HW}$-0%7fb1bg&VPjwl*z1`Ng64kZ)~#Y7H1 zC36mE+YUw*4Tmia7jllg=o)%mG*YuP@|JV7(RQ@8XtZ-_^gZWTpY2$h;>hU5@W-XW zM%3V}?eNUf_`KrauEaz(hEj&$qlq%q#&nHD7|H~IP^7DoU_aIJqx~);7I`X9^d~PO zr7htTYw=Z`{WH%ck0;^t4X)3;%aksdDTU%G<>e_?0>lL{t+za7v^;IfH4{Rlv|66A z;rilW_rovosn7>5BSfPN4kk0T zx_X0qP1=4zZdW*cWh5NUa4ccTZ`S_a8 zu(V{S^XrcEe_!9>mHsRFIr?wilzZ!{!p~pQZx^{+ShAs^v^!g}H$1w#6Rljyz2|QK ztA_g*nR`FtoMhzu3+K1}T511<(@(}12iKIPsbB1KIs6ur|JiQ8XZoK$9eI0@?6fZY z?T@m9*csQM){8^EZ->u7zm0edSRIaRz8yL696OT@MgOae`R|V_&q)B;enIo(1hO5$ zbE;Ev9HxAl@!RlPs&=eeAE|2-`1@65N$yMHde@i>S&{M&i2|K{7jKMrJNrGF$yRyNjD79oxordz^Y!TCH+u?>+qj^%!BSkum z72}0uL(-6oL{dcF)%1MQy5sn^D3y2ZN9)iX6#f_&p0e&AX1TTEXv zmtITle51!ywcTjTo5j`#!o*^|*1F}+&_B94i&HgUL(L=EaNYL(e*tUUr-gDKd+P?n4feV^j&^9Dc{wCsx~)I??_~&&(SMQi8yh^D zMj!v{K0n!C8+~E){=dt@(K|68qu#$KlNo$ipJRuawMjTip*AioLS~Z`qhuoF=vwaD zGLL4Npj?UP>}a)45WG&cnkeu^mdoT@Pm67mc*`j_UP@HNIraA0#%h|}M&%mWm3?n> z?J1fPmgS~yEwY~Z=w(8=hgkG8$ESLlNh~4v{e}1*Xs|r^o*VXX$Thvu^{-%xy=29D z{zJRFEMUg^q>2<|V8wEwm5G#aaj3PqTS?^cmaws3dfw`bSQgJpO?U3<&C*nv?ai_b zP586oEDO);Wyb#+g;fpiJ%8mF+C0DUsysK@G#gs=+$7cf-PQ*B#db(WZp9aQ)=C-f zf~q%NqHxi4u!W1u+Yg`H#WV+5^zJu|$S80=n|QRoU4ql}+HIb5tC7%ZI&0f%AxT>J zv~BH*Znv%fUU>7muOec;l{RhRP3PekuV3A#cm<#TE{=D8y$76d?7RiCdP|XPfA&UP ziD2o6_s#w&i65wzl`3#lf{kk5mC`fj?8jX@Dfb=XeX9R^Smbr>?-B9VpT9>HXc2$L zZs+Crj?4WR^XZg7(f`~IEv9bzsLs0l4trpb*m_Rh<)`&D#@lyI$zYNaopk^jqR+q<>F41T>5{q~0MqxsUx8ev(7D<7v+))I5e=p>|77b`i{pi*0{?OoqI^vw8Gub~9s9 zs3fJk^W>LI=2J2)?SB=g6W^z59R4?8?us|8qxH^Gc6Yvg{GWgUDBET|Ku*sba8RL2 z68`r#r_ng!)t1t0pz4=bLwn8(u zd3#Z?jeM8fha1o3a^u~?oa(kV3VjEz3mbnKe?ZC(-l+Opn7bi8;A{)styj5j$y*iK+zTbI_#VKkl2UUQDyu46V5ZfzCEK1gj*jGY zR<$Dkf{co`F9lw&RiB@cYFU9^q`D54!s{yea2xvCw=$#N>9_BS?KV!09BpPiaVpG% z^84=iw34FFcVkxZDJJbpo)Ax+vS5wf&Y4~tHiO>-UN@Q>K)QVIkfFN#?*}++ei2Vt z#=M)r!ruEebUv~fITUeXH#-bqebyT6>*)2`M#q_Bf`L&JPBJl^Yg^2Gh>ACY2vI z{+_-;Ha?n@ebIfuLdO%?`aa>KoL=h_ql>>Aub=)q+iv~%?>sNz^3Cz#uQvh1H)f4~ zU!LWSKN%tKya2Q&C??Z`qoIM{pd)!#-RemkQr)^!ZnYa~y^mw-B2Y>X^`s=Fp}>fh zA%C}qeEN)7ia`7E5Amw>9a3=xI|Rfv?Tm)8{rGERFaPF17${fw6XX$mNOD4(3LA%? z4|(+4F=$g&s1D(-mAXnjEA&B>;UL*!Y?UO`mI-${NU=unvki*iuj?MTNO0m{ko*DG zmRiUy=as_=j{*5`gVa!gGVVWfXzt(-36V=>S7vSP8b8DEPkI7#$RzFco3}Ens2BNP zv}$Wx`)B1f*$BE@3>nh?&Mql0YC*5|8{>cHRFtnA$>iziPnfvADJnd08rFW-On?ZS zQc280^(^;3=Vj+OkE8G-P8FZ?xeocYf(P{v!Zz|P6xVM^w+}yT7|RqnrGjA}%GbX{ z6@F1yxznyQ;j78uDjT!GS~zUzzThVChCv0YiUPu2-V~q4T6~z^BKOnEg7W%CTC$mMVCHK{*(1#NT*F@u4_OTR;ft%z14L3aY4~!Gue1)d=G{6s}=3hh- z6f6rquIGP{;wNC?cw{VRDyGDlUWL{Z4KDneEzVR4r19_t<#I5Kx9sSN=%7Fq^37Go zL7wt2bZ07Mo|Rj1Rav|mq_{@3X@kzO)kSFZE; z8CUOJ54AoHOWHX!RKu4Y=7O}+-nd`(_+pUuL&3~|=x+ibbzY`M_d$(CO9M-1t!w|> z=Q0Lw!T4buV;3pz`r&PG#c&VnzEu28xfQTm6%aXa)e5%~x-T=MiTr zd}C592021%KwMtb$*7pN_@la37csaCD&}#rIVC5y4Do0fxXr!N{>{72_RYEG#`f=A z#~`tgx1)AV)_GK>zMBEOqK%~J8A|`zXR-uoTf{+&gL#%@S%(2Extmo~4 zVw!#gBgM_v{`HNC=|#Gt?km(rJurpQ0;t^BiX@g;!bCv(Xed&Oy2yW`=3m9Pevy3) zE2w&ZufFP5uWHc7L#=rlUM>YLV_Twcy*FFIh)Y5?18w1*8W8exU_`Di1 zw{+T0h$^LbQ|p6RF7H3klzaG)yJ*Ya1;B{^#vj^_F59#PY&(WahAy%@W@7-6?!dCc zw4d_L)8_fRx50O|kYm4ASU9SmU$(mWS*aOkx2ZG!8-;Q#$6XKYf!%HU0TsDNsTjz+ zdh=e7xBKD(KW3MdQD#*rhT6}1v9K;geo^guRQzjQSN5$#)Zc(v1Iue|&)VnjfjDb0 zChTTJ%9Lg4mXNL(r--n369ZvZDPw=Qpty|=alGpH+DSWV$ALQ*$L~z`4}X?g{*dDL z4t9`n=B8lz=JGu}Kup(#%gbhB&gbr^d9=R@Ro9-#paSdz-_4lwWy|aAh&~zZdTi07ckf;1&b?pxZ+{A&OPowlm~Qwtvv2k#+qa)}lr6;jzx{Ku z+d>Dr}C4ORiqt&GB#Q!@>u(=e3H3*E3k5EM8ZV?@3 zp1Iya<5Z391nMc!GTs`w;qt;RoT#9VSi7;K;Cn0%WVDq!%l`v>K!d+lRX}9bm4Zc} zV|0aMMF(rrMKj5F1jEN)Sf+!x^nnMMgepdW1IJ(m$b?o!a^uG>696v%w|@GB5`>`w zL_h@c7XpSi0U;n-MBrgz5iUXH18V4hSQr`}p)UkMeo&})35ItFc!xFcm-fen1tZBis6?_;X)8|_=Hf^X5#V>-hvQqn2TH_5@<1UBPS4@(k=fm zav>lB5)c9q5G!Xv9lF>TzW9v3s9?}2g|Zlnz{O&Cn2nFrhkS@wEyj&4porjgSM5e# zd?=1=ReGccd5wD&ljes=*w~XNnUh=zdL-4A;3$(~36uT^mMwq~jwNII7?5mPH(5zD zRT-B~^^{W?m3DcTcsX(tNfKsZkq42NfEk!=MwAW-k`-W;))63C5FyA zked~ah)Iy6c}|gaP51*d`vaW6>6=ePoFSzGC!hjr`8=ChmYfNiY?YkSiJZ#$oGmb& z)2V>iNuAnBo!gn5VEIPS|Cy8AM3w@DO|JHqFJqcj`H%`$o3k08s~G`q<|OiYpMpu4 z&v+)N zOR+>pG686b8F)2Xs?u7NdpQzoI<46HRF+qAvCFJ%4Vp>GKB^fAfcm^hw{^POpfU?^|`_*$|88>yKA zlfqgMGkdGs|7j3ugHZ-1o-H|@`|7gNxi>PgS*DYDPEr^qSFzGsts-%)N(-vm+Mi6d zkRm~HQh1mU$%?FKG8*X?5d$g3%L-> zv?1ZNx?8Hc!muTQxe2k64&k{yp{feOwFgmI=nAk*LQ4-M6v0)w#(NZ)^1DhavGAn5 z(ki*!{|getOA(wKeocWks!LX*J2OqfO?44m4-vbLLmu9{yNg!8qk#S# z9V6GnJ6x0}Y{G2T!AWeCWy)sn6vS@=HqZeW1hKeL{KO9l#DBzQIn2coiNy6u#cXR4 zEi(|riX^1APcFx>w6zT+AB5!FZg_dP%}vYtGF4&c8t) z)cnfo?29!7&jaDjccIUxAOby?kp?E+{)l<7E58v_`J|ffgAH2c-K7448hHB zqK)5-hbX);-VxAwJkY^X(4c(Kv&+yIkxeAc8V=pa)w~hc%E$)25FX7X7QN5A|C!Mm zBNLB|6&yXsF}*Axt-V`JE7n`WhXPIgo(bQ+1*cc(hJG|D5-PZLx(quAHT-{hwfquW?*J16%_&eCn zf!K;2+U`OaN$l8<0@>b6(VFqb7mZbwZBCc1(Y~SCo-EdaJ;Fq7xqS>1L%bhLoe;l0 zB`3AU!7UOmqb1`3)b#AurcEPvBig_%Jp{49N3zq5`_~f@*qv>?Rs!AL|1BV)q1+IS z!&d#f{Y=*vV-?T+-34LSP-5Lri`{JT(-14t$)VeYz1!@)-|WHIy4&25g4&S_(*SN4 zm|YYL3`zW*&){4X2mTshUE7@fwDv9E5~9At3a)lRi3{Eu{tdYW-W38~-={&>2XWIZ zaooC05M-CSCY{fNijR%CQ47IWb(;`3?hurS)N0F)z}FFo_~R5YxAyqr1@UqNk>k_N zR@1FtH?DvJQQXg^<9*l@MZUI_%)Se8+%oat1kBnSJj+TE;V3~C6V9Sr{7(42+9{3# zWrR@>&@E|Wj0yTM^%IW5Cb>bsHtn_oiP}Wu)bXc zafna~S$Y*$V@sVSV2k1;r7vd!D^LO@aF`MmgDG(ADm6?Ccx#$*;Lc4Ufk$1s+=N$6M%3g#VNbZG1c2P@zju!)@B;w z5+N2Y&7x#1AtI0hSHJ{Ypak`4pt^KWM{os5pzuAw00)&#IgkSrg#kjK@D_gsI)DKN z%BL0Z15nTd0?`9k@B%NYMhDMSC13?izywO50e?%0;dKQ)|L{!=Q35&;1yCTKlDY8z zzyVP(1Q_rFBY&29-4I9)250aCDNq9^;N*7u4*MWdb+f18EcS1|e1$paWPC1vn1{ zS8#|G;irDe;S?b<7@!0MUjkl`@iy5qDewYFfCPdM1xSzryH2wrzyVf(^FKi8JwM%0 zAMi{d1QF0JuGmy%{1RT?8eff{77h_+KGrLm=A+~v7?1*5&<12c24|22BG3Y$12YU@ z25oQ#%6|r0a8@j{=fVXAWDo|wPX=vp1r2N~Dh!YI|J%kuh z;y)BE{zS|SaIS=h#XXCX%i;Q873oCa6kbQ=D!svRh~&Q0^*5>Do)hU za^@xz4lO#;OtGSc3@v1CCgC8XVu=(A|1D{gM1%^GR=K1k6PC;hiWW(peF#%0L!Bbg zz7;`Y!x=OGGMrh$Ag)@jT*8JSbB0Wd78MQu8v#`4N}^m*NK^p^EY1lhDv*d9_w8oR zojrdB9a{8g&J!q@Mtxd!YSyYNyoMcH_H5d<|83KrKw30v3=wYs1|Iyi>VKqeej zIcE{eopWyZ@5-4iDtLf7Go!@9$1xdfIRm2yjG$QlVK$)wafRtaZoKE=g5pIEm>FPk zsv`oEGeaoKT^t6;v?lgbh0@EQcI6_^<<)WFTxQ!VD`+LCClgFbfx60D}x160C>=6{Tx~3G0H? zLA{Gma1qHYXt+*DB3DR(#tj72Vg(@2Ku{|AYRKU#oLC6rEEIm~K}0QPm_aJtVrry>UckVpm@wM_3zkwaFpMQAimQSV zD0ptP5kwfZ)aFJqHB?nsU2Zkwgo8EK*+6A=B-J9oKvrFYYt1y0Qj5sfe}ombR%4Gv z_OrMcFyo92hV^q(ojCYMvu2;Qi=Yfb7(oLQav0cj7Y9!2zj^bGamiy#+;PG$ z$2{}5CKVy*4D$37iStBw%s%ikU?>AHz=-+3YNc~F0^a~djB{qg&_a%XLO*Ze&Rf37 zh8If65e1*j%;|*UCu%{2fP>oLAw`D{kBQYY*g}rh3p?I3?uTx}yc+(YkuVxN8^1z{ zT~Z;16cBsKC-pPvkasd8s?ZLlP;kKpn#jTujWS>}jn$xIg!zXGFtCI({VYu*p-~E6 z05z2*CnoH|K+&ir8Xc)l|0QA}gB)N$0+~dIP(wgM+|0%kdjTlzA?2I9g37DQ=WS%5+mpl}7X)QMEg0z(q)00S__jD#Gx$FVDOI|xJ6}o>%bPW0EP}|!3<=H$oM>C7!;rcK_6KP zBR#`_O>Qd$uPF+()TJWNH6(N~%fZZQ;5iqm>mNZ#N(ojFgcf+NIT}a-A`fX1MQR`j z6>(o9Wl(|%W}yP||G}CgU2p~em|#vVK;{;}u!0$YVGAaqzzOQ56DX)83~hi=j+U9g zpllK+8rmSciK#XNbaG5O@)S$bmTtZDlMJiejS&(BW;}Vy-t0Cr~7bVRG z7xWNHHERPS00HkX(-8aMXLXVRL)=*K4;DbFOafX-V8HN_3)Zkw&N>4WPDV))sB2Wl zd{Xy%GJ*x-gapPziw0Kr4-q8+P11WzwwRy=CS<{SICRm8e)bvp4Fn7-lY#V>$C>d3 zZ39p+gBG-4g-9`|OapXQ5JYgxGM&#Z*SdlkvXF%(nBaUVc&6vXs-q31z(EkoB?{bE zJnnI21yEDS|5!tFJSe0@g;5QSf+zrnEJUCL2*H2}8ZyfkLJbE$V3Ly}k|%w&p$#~+ z8fI!rqBejbj)3`rhG=EAEE3VTfx~EUK@-s?LJ?UMcnz+I`y0d^=PksdRk2znTBT}YuC8P!}aDlpDqJa`H9!NRRpw13qu6M7#10R z`SVUF^ouJeQi11Owy&6tPd+Sj)`bfgso^Fc7!pan96 zl3i9uh8I8~zEGfK4rsL1&!9kcrM7Em%IeW-=?mE5;_nIO_YXzy>mT>Kwu7%FS7$$D zVl_~~{DQ!OnI$Dlk5Ql^P2v&89tH(eff`kk(^xAAVcsI(k5m3ahP~xL1a>k~pG`tN z|9}F#Awh#d2tv>`|F99@>=Ho^;3}g)t@)yNDs;vtB4|MW#<<5qZUvOv@!8~gHX28{ z7Q3kMXkkFRBw&^tR-mGpOoY7mlGLST*)A|-U;}bc2@>RX!Ru0wUy&8?KLS>nbT(L- zTwuu+t`HO>lwg@*~1#8IsK+krU)?3norZ88-j|5Ijg{D^d}DSsvz( z^o)|mBzWsCrfoYsiv=f3kPXs=z<^O;!0m2<`$A%ajc5Rry6M?c(l%t#s0@278N%w4 zpo0>qh%G!hf)ZT*MQiK4IU87=Ucd*?n$H9#73e@4_NJMX*IsjXo`}gwjvGGv|2cBI ze`2o&J-CWi)b<6{s780f&a99iGGvGwz)iP4J4s|w;ZfO%D5l<+Y#@8lyRa5&^ z7Ai1o!=_FYR*;k#CnhX%7it|Y^^Ls$-_<<7m867#RtVjyU7!n$hkMmKa zk063mBOU^Sh-$Js{@M)0yRfiJjuSD6GsqA#Fpr2!4>};tT z427rwD*!}ydaYzKA4r<>Bzydjn zqbT?R04owJTmmjAftY{-C}@&}063p`fh*W6FVK(^P#Nyw2^xrkob*V3aUYOD0T_q^ z8~~IQxB`B`wZbR?Bj5u6Z~-~Ghy>C>&WIprWP*xNz|f$P@p;L;LIM-uil|Jlm(+qR zK!WYyiaw+WvDAXHgvxI8w+w)SEZBl7Pze5#4=iZ`A?V00V1g~!0)Bb57HGdC;LDuk z0$@W9ZoEp+@QD;af=yY0E9im$zzob#mxbs7DDX?63n;YND4ys6n9KsUqC)jD5(<&J z4RA;=WKE2tE-_@tzhNSR91b*0t|?l>HjK^PTor~80g+=v|5Ry+5y*|SX(Xc{0pBQ> z*H{qlTaZryF!n+h3!4da8%`gRC#Gq&4$K|A>hpG?Ed}k%*un$}=8W z>cYafAeE`0EX@%IDjykq67DgHAq&g`^gQ@c9(N-Q|8TPb834B$Fd!TGnZ+at8d(7) zr~(_KQ_$E(H@!9$;6{(oK|syWVG9BokO5-j#umu|VtWWwLka}}RPr$kC=5G~NT37~ z)C~QM^Ep%-u^^c!ff7iMhm(orIk!Wq&iP=Ynxr9vt2ihGQ6DjUQv($BD?N`QXPoISV4vRveWs2$%qSMI7A&G#&-W(?G~zjg5%# z)p`BL)g;(L^Us4-*y^g)C0*E*8`zB#zTJyh|5X82fQ^k_p|c`|2;+O$j|JI~71@y` z+0V$=93?q^trdvESlAF)LNh*&6_ryN6+&BARsF(})!Cg5*@nGYIy0hT71GWq!;Y)i zP`TJOydst5*@IHDriI$5mD;J*xRY%S;A7fVVOgcMm7SGYhPBn4rP{G2+m!R!nkuxQ zrCMIqv!i{Eq&35(6|S$<*>x$~yT#kQ)!XH0!_>f9KJ!-~1-_K?SY)YLIy+m7+oGr4 z+s2*R#C2H54KB7_F1K|KxQ(bAg@~*TBD%e(!p)+bWn6=@h|!hY(?#7aijJw(TziE8 zblFjqbt29Um8~VNp)C&7NZsA#-QM-x|KAl2+>HpznOG{a+*UCSH6*TJ!6M*2maui+ z=#}2-tx?zY(bv$|$)Vlnu-%9fuH4vO>J{JdC12Fl-GaK;dnMk(iKydM4$Nh!;3^`| z4K8@ioUpCA^3~t{1zP*%$5AVlEVAB!-CV_KD8QY7e_dXP5Z;TTUy$`#{*~Yfwyto= z+Xpt5)kt3mSYOs?Uo=c!++1J^)(!mSLJ~&d6qbk+p4#TsA_9KHg<`1i<=emov|*hy z3?^8#rB1O`;UC^#gIyIW{0z0tq6R*qfGu7pa^K{DUtN(d>Y~}EwcC;)Ga$xd5@zAF zxMH4Niz3RR)EMB{z1m%&VH>sK|H)A(B*tPMW}c_a;y6xWH>O%62D$T{hz_RQ;Ampx zcw$+JVmTg(Di-8IHe|A$C?pzV?3LYEIpgH$-dzz=HYQdbMxx{^i9^=pO-3R+Mk3Z2 zmN0f*Jw}bi>0{maV@E#a6t-1Pzmg)#V`i*>cur{pCW_#hjp>-yj0zM|KWt4nFpk zWNqeV=5pa>&I}UjV#0A{|GjNbO?IHI+A748T-My!!$qQV&YaVbh+bYCg4T^lz71C? zj(uk7eZJ^l`XwA}>BeQ_;!dr_N&{bFs9%VJY=~!9Xokk9ju3I7YXOx@h8f|OQ zfaURpWkj_Iy57cT-Rc}p=Ymq|cqVIG!Q;#EYLY!>qqYJ0aDg4L0mWwQ#dhq*X6(2o zXX-tlxo*?DMxeabTZMFh*X_=19-LGbR(k$qk*28N0%t3RiM8hB8rwd|trynzT^p&) zPJs>byhY7+T-QYx|IA>Vr5=r@u8qn$;=m@H!M>d2+hQp_)tQ!$FGz#vmhS1M?&^+i z9w1*EK!GVp132(*IGAoO&}!X2U7HT=5YFjeR_V-{-vH)W<<4KDRskAVgh_aW`^NA5 z*6;mZgf<;t?M?&x-tS3Rgb96X@`eldKIw)Yi77_kp><@x{tbcESOnkX8rXqFcmxgK z?+(vz4M&6>Am1iQgAM0!6W{QSL4nD(@Q^m{&bVi!1s3Cq6|)Wv(Pqxcees7)?G{fU z9yoCi7xMe=@9ai_G=KyTFK|Q3>xZsA20tRliSWS@ZkIJE@P%@M^=TjHkQ%UoARlrM z4{`G40S-WN|0S=1%;xg9m}YGT?qjL(v7T@W@7%o}*&erW8<=k}4|D!z@##JCB=2xU z*q8%f^MmqeBr+Vog_SoCjVjOahoEF+5u8IOTQBGHKL2nQALoir-5oG4{TJI&Gg17a9@sx zcJkV;%;aGAcb8Ik&EtWx_jLJ;)|`*-p!XHlXhIV^O7yVvQ6;P-pM$q`oPg*Kb77zUROuLS6dhQ2DTvtZ-fnG7RiB zzTOHL_sY+H&6_yUUm^E!L%(O2w?0Q-ON`daB9j_3G~H~ah^c^d=`mY)dAMwXOM`F#f8 z|I5)$_0Cv>Oz8@**Ho9sd?GZ0PWzjfD{!rhU_pcb3>u8Mune!pbj3syKl!2nf)2BiH1#$ZGDvG08w{q?3 z^()x0Vz*M5PfeI2?w3Q94t;PWg5JH&L zRm|N6U3sn5Aj3!ZZKdBv|Db?^4AbpEoeC8El^zLc%r_GvHE@uiRtL#o6LZc{w_{=> zKrq4yV6|`pXm{ZiSZ_O#5CIA~5b-2#B8Y%fLB1V#C6-xgITl@8I`o!X|6M+W*92aE znHQQBG~||yt z1Q68lg&cMil4qWU{EXwzbFzupRfH|fwL=h_8{O=b} zErg!IdG0x{9dJ~UY*sl1%`4GG8~xa2yoUMKnsCX*Xq#!~1*XweGxXPE5_~bNOx4O% z$QOY+kj5n9PVz^bB4w5tgtC5d@FSCyJua(VBa%lEWpeOZS8X3*$0BjRC^sT;?*^9_w0|&F8%X+>CdAIfQGMR4t zOq zuz+G=O98j9_dS)ZibI)+n~k343(QpawT6 zg9w;F1Ee~T90XT4`qZruM<9U>0*Asy{A_?#^AJ=}kcLIfZHDP1R!mIig$Zb+E8m)e z@|tHv8qP!xP`OA&SXU#bz>aYrAxVC`GCjoQA$uH4;v^991sWY?2O`MBB-GcnN2K9b zF3KI_lBmWCENFUuNndV%+`!JsXfng02(`oZw`@|1OoOfJ-Y21ly#*wY(B?fBB`P zDz`%vLc$IMa1jb0@dxv$jbIg+-wB7AOhkA=0$CB2Y$SvNAmJnec7R0Pq**saG)RXi zoPu{;*&mbOaF7_xqYn8uA33ZjIX!8aMqDDtImVNQxcfs9qQ?>eW+y)b!K8~gRv)Gq zw2}YFmqbud1w=^ljN-C`j0TvH9iZTo`%GdQ##YfYmhB4y)s91M-~tBIQ82?9wb-x}^e}#wM&D|L2zoLWEPr$tpEHxbr!iW?jHp=c2$4|05M`Pt(W)miW-Q98GBKgsT;WlIfObm9Ik(sFqsBIV^!efdnLc;A$N# znRpe+lD;`;xmJNmu)&F8IRKg>K=#19J2MI;>q_h0hKO_Y@ZjtaT>ONnAx<#^Ov9OD z%#ujSR7Gw2R4c}ZIz*yb_9sdIPy-s=HX^x|=X~G>>Ll8ML=dfrh(76Co{mmjh~Q6i zO-%wX#CFvR9c6VJa+>XWlySQC|1K)iOhh>-tIv9sP*%HYZY{m{AMuT#mgq}0hVXga zV)+Y#;V2i5?(Hn6?PH==L zt50sAL~%_1=V}4I_>2qv3XOf792LA&wu5u3#Jk2@64(=68%4p83+ZxDd%=eS+3Bz! zp(l<_86^*KfeTOo*UNf*;&GEh1)A7pjL5IsRD5SlzPC@yiqhZq#;Vu#OSHc@M(kCa z^H}53ka=ebt?kzH*S*r22n2k>^IFw~LD(9RoIscej%zeCI0>k8Kva>YKn*ILLTe2@ z?~%Q#1ot(`ol9}(w?3Oq|3b8rlZYVVqwSL%DrMa0?(Sn=X#uReChM-y7$H99z>P2G zye~j!2S-SQ9n9D@m1^;!zW%mFo2N6~Gw%;5IQBzD09}e}FLT4c^|*Fm^x?XM`Tg5e z=p}~ZBNSu>3rWFMWWZh0@3ath5LRpl&qT<-InwNnCE4R1mUhSYA8Cy@FXfM=U+R0p zayUZa%}5mhjyUz(L!dzQ0oEUIfe>T_rC{2GEl1%QT&Z}_-`T+z1c3$yfe@GhB7l?Q zEdn~J7v$K83=Gmo?Gpyl0Efsx6_`OGK*IM7&KH~j#w`S}kRBuy0v9+%U{pYGalx6L zkryD2!<3vt$yggb|I|wPSj%yY9RyD%h1q#f!Ar@}KFPrdkOxl$8P0W=MPZL6fT@J1Clnb|s~MvNcFKx7q2fC*Sv==jLS z^wbn|MlZP^L+B)IfMO?pV$r~Hjor{p^Vz?BnZ}9wqwyi z2nA}BgoI8Ik!OVL&1?XOSF8;S=ofs#pM3sO(zpgrLQZ`VP*Glq+u@l}Y6XNK0C8pz zT{)V|NPrwD7AqPbPOJ^V(A`po6v3I^LOcZr_?-qV0+F0R5Q#_yG-PpF62st=2o%A> zWzZBDhF!8B(Qu|}(v24g6c#l^Z**R0#Y7QE-K;2=$MvY(d;#J#rXR5sXnhzRZbgvE z|3GD?4-at2$lVsLeMI7&5s=;o^-xa>To8Q>-d|j)X8@$kgW=3HkXx`Pt2@n{%HAD(vfP4&75%30DBA`+N zm=_ErK0yGk?oeG?6?l4yf8fT_iA!c#XTw;JvILlnev zY$q$)fr{QG0kr^-RDcp-0TwX979edDY{AktEz>@2(_+EWLct2SqE@uV3vdC_Zf(*s zf!BU5*oLjw7M|JFDp=6hodIRL=~8~W2?9Q9-PnOOQD{Rr6Wj(4gKmpe{^Etv(N>8- zrP63{m5c^`fk$>|3qa^Ff-|K^9K0S<)( zk&M9PRtZI%X6vW`wZT)4verlR>$n)KzWO7rjgnI4Q6Yp;y<#a%Ss#xL>6fnIB1|7s zH0BAISPGtvtJT0A&QTsD89oW8qRA;r^~8#DYes+(xpoBU8IKLLM~K(}qNbXxF%(9a z2M?^JGWCX484zpy!xgjv8O$&J)-M^H0siJM{?4!bp1}q<#v~rad33-TkUf?0Oejy6-d*z+NIT?L=F)lc4$RkwaT6#|4|y?OJN$+K}^IK z{U!AvgbMWT0PJSY70;SNXmLdm5ytXFXhyMrNEvxNY|c5=**r&K+H1|u z#AiB$^o48s%%+Kq1PPb{2!c-pbWUC&u&+ZPMtTT^ z`abfA04)J+)fLpQ{&un_7q9`70T^U}3t#OB5O5fzvMQ(Y0^jfcg7W;Do|>2~P;SM3 z9!D)xa90pa|5ca-u+agArAIC3B(4n(sxT7&if07y0U|T2@YdlvWeXsvf|l^7CQjZ- z?u!1f#u2P)HKT6s2zii4Vu(@ic?5w3nQ~A8!L}}vzOKpP|Lly>nus71eH0VEc*H_P z2M?GU<|g4~YEdpm(>zixYMwwGCs83Bn+zmg81q(;jvOZOG0~j}IO{|ilPe+HM?ydu z9R-&nhwu2BjY)1r3pjJ&I3kHmD&#XR$y3d%*HHY+{PixRwDnyB12~*zlibat9M*z-y*`Y zU^3)rvH`R5OyBPU+w>^2%@yTDYxMLgx3Vk0^8BW9319%=+ES~!$t@F2Qs?qhi!d(( zSQ<#c-n4aCnnB;@tuYG);d+hX_M%SjBrIMSG)rn$Ty-^P^&fN4GIWoee<_3s-=5Jom{^nFj5j(f2XMosLcHV zUmb;8=UopoH_`k=R$iMC9z{qivQYpLCtU^L4xr^>&dW6&zB0B%Q09$42WGD8Mzuhe zKLRB9sNBe)3<}O9ymr?#X&0(iXNIZ6?k>8FHpiH@xft>psdi{CIhGOKe_$lZLd6cq z0oOELp5|$6{dRD3$Z!{5^b9r*R`x}3|G=Hlc)Y@^989t+Y4UcrvQO9aC~r$Iz6k}u z`M$HVzK6lGYE_WL(t01od1HyD*4x52%7wbO10Z5fNC15s+A?bsdgM0}M{}D$CEtE_ zfLqlH5$7Z=Q@5r>;tdmnlX=mw5`=q^eHh28!^aUs(TTF+vYB`rp}5IyHo73G7Il=d zn_M!PoQIU@H!;pUCWy0d6p)+ELPJDxRlAXA=Do&_X)O6)0M4%m-rrSwa3x4^i*J?} zbR=@pC8MW=9Ca@}1`-TB-T(A+%fSXnNq>h#Uy2%-A zS}e$3ANLSJAE;R|ts{i3Gbg|T4{Gu{?FU`lEP`Yzh_XL)9;iT&d8ugky0ljWwR4QM z?>YhvfcrNg#_6USDBlmi7BSlbr<;|};TV2K`hccSWc`D0+_Z|4v2K*Ti z{Q94H3b@eXbA`G!JW}sDK>QOpkYGWB2N5PzxR7DPfg?z8D71)TMT(EoI6xsHAqNR& z9$BpT=+8e6C{CUfp#qV}k!dQlXn|tpK@KGTgnYC!pR4spMU?c6-X$=Hj6NV z;3R}ZKtTedpdx9olu#n!1gI{8Nd}>cE6A#xYHO=DIU=}_sun6JY^0rh`lAA?6yiXJ z+9*5%1q^BO5390{|IkY=89Y-ctgFm2D*`h#ON=MYkVI?|Ax`s=2NYI&Ymu;Q=#il+ ztGr7%xYp|O5y-lNM9eY8{BjW*2+FbrJBo~qIE1h?sW7+-Y4RVtM1w00tEz;Pgf!ah z3XvL4sNtW#szhNn9gzyuNQ_2M?jO2%EYVS({$R17AVsXv#!n04KvYpjIAPRNQ9X5p z5md4YI+QfEX(JItAfZ+fMxbB>0C^<=0}g%-c2pKvxE0jpxP#8W`{bM8So)ZKR$3b? zs9>T7GeQZWh=v?+q>><1i6sg#is?9mZsO2GpMa{0CY2n;T zN3iUCuPhrl|DXb~Nfs&OkA)d-Silawnyaq6qGSt^9e51*puof;?9z293|XW)Ve9xY zwtTW9){^b=c(cwv3k^)9NHeW6)pT@Cg-IFXQ8b9n*k?Jc1*PFXaEy7!dIBq{qLB`@ z!WGu|MPslzRQz%$kUrgSCR6wwPY_Xrp>T|ke(@b^BnB9Y=>-wC6AWPDwF(#W?NF;-}PPS}IUEvJ;K!b=+eyL`hL=DbZQv+E} zN_PS&plx>Yg_v-RXS=J?9e0wO(=4r&je3(p&b7m_h;3^abY@DlW;W;?h#|IWq1kR_ z&0Dc;1aHG;u?T`Tv?n6N-eOMpc5rY zohCs}trJ52L7~+c@F{p5CcXHmHJ*0?Ck|a)C>70nJr_`qLDoVU?4}g9tFj zkfge@WP>@`BJGd@9&9X2iZmt6$X8V^r2(ryMFCksz2s*jp|Z|EGlfax_Ux zpbZ#kN|lYTuniuFRY>4q2}^6Rdn0UMoi*Vd-W58B1r)jLfPfT;ZBs`4gBJD4&j-Qn zT0vAOX9r3G6y)=vX^6l=qxh7EDux6y;S^0s1SlP8l))10kqv> z1!KNdK4Pi^*})2~{3SVPAgdem?;Q&%=Mf}!GkKsgc?-gWBp*;xYfW%hGIdl9OYlHU z-1MjY)7Ke}Wv~?nHNQ>(0fR|44H94|ghY@<$^L<|F#d-@31o)~|8)96VPlFNZ=>WD zp@b>|!K_zEa+3kx&MX{=z)TM_+uH7x2EhEuSQmoi?#hA5f^kZcU8=FbG_lMOWJ>DP(qf`0J05cQT-elDxvqeWD2OVUfCC`l00%^X z2k@NrUH{R71tpOp#)UDg0OV{FF)k!LxYdjgsVfO*-UA53(~kFIC{_#j{xSyzV|Th65+wUtF@QG_lw~1(GJ@+5M~nC=-!S z+-ufb8%zZp+MqlrbhBX-RRxe-I24`0np5%d2*`+-Kgc2Zd5A4-Xv^^(>h8D?Hz0WL z^qX-Hrr;k9OL2F=KNL}fk=Qm!U`op207?B4LXuX%2(0Z7A^=Nl;078n&iLpbvP)(* zBMnGkw<7HyKq?Iip#wdz0}(+ERKTnH&Ca%r-vUnZ|4^y@E{`W5K@Kng;p9k;g2Vm1 zLgEfZ1q5)B{@`}r2Li)F23(IPgh^>GPVR(;I0(@9=q7C7Cc>C-(|WHUrqIH2Z!AO& zu%ZwlV5lHch#-8(cSNQ(+N4OvP>Cq0_Wps;TB1Q70S#OYYI5b)cuq2Q4Qz&jCQjf4 z)I~~!rbs4Xc2Fkk)(Q2>4Jp0=yu^Y8MS$rDsRlA8rMONn3L#_uFH7b}M}nsz?5?U- zNlds6>Fmw#;0k}T3kB*A%vvB|Ktl$Kz$gANNiabKt%ULX?eXN~6DRLZ2&3t`!V6;1 zF7Qo$@XiI`MPOA(7p1{@BU@?Zq);>bKh zl87hTqH7^8DFsr|1;2#e$nOheawchVCIuq9WPl6yj5D+%V{||Q4~5Bg@GYpIFZ`?o z73|+GF$LLz-g?RvlWZ+W;{O)yYeD5=4mupH@9AgZt~3+pC0paMKE9skK?5%Pc?OJy6y1_e&bFCQTU)4&S6 zzzfV^`O+~lS!5wqKm>ru81wEAM$anJDQP{$L^t#VP*5R{p{262pBG zs8WznJz>uvAn1N}Xmaqf9FwKN!qGkM<3H=8RXD%_KI{xdLOs8L9cwLA_|Pv`XD!AM z5`dyCl;(?0!1FFoD|ey_0!`YM5RFja75@{%4FB+8m=iT}F8ttP5)i=-yg&z@Cp_~& zm1rX+6~Z$xM$&roQRITT4&_O>EANKW4&-1-^S};7gX|#T3(oB*&8yAK4&Zjcz2*(R zP=f=GbT>6)B!U!0Ohb3Xf(G(WN#x)Qs3$DEKn|4CEJ+M4?^6j4^iJ`#K1%K6@^pu? z=^rNGqL{DvrUbPZXP>%gQz}3V8MINo&MJz7QoiVRNZ^k^6h#=R1xBQRDb z$S7kmsw8(dlS>AKH^GFaa8tZAFu%r>Hp1-9?xH1|QdI*H6Ie7X(}d0%Z#sLmI(0E% z4o*jPWOX2BBH*GtVFP>)CdvXaF8@X&R;p3pGOZ!7u}`%XS~6@4_jFsCoqZH(h1D6~;)qmV=(F2hJt>0$z?02V=1GK`9*(yzgq&GJBXK1IMek1|Wq zAV{x{GYVmqcBC%uMBn%@R#7ryebfdHa1qFEV1)(|jv!*o%Q39<1X(6ak_6TaWIT@^iS%SnEzVPawM494 zB0yaU1W^Z~$V9;A;I%;(feI=>XQy^1Dqsh4!VHPdbIf2S)+e`GtC!ZvHEbZZE*04z zhLOIGIvZ|GfeAw!R!UmcA^!|T+ho=^A#lx}Yh}MAObS=E7NH7uMh4#pI)4=xBd;m3 z6R1)kIzd$~fQeb-$84-oCm<5}W`{m4&OWU*KZo{o|0X~sXh8MUuTWPZw5j_bAU^+q z3jR1VA_4R*kXBBBKp)OV%UCI$lqp4KOdw?qD5 z2SPwYifwA?LSL#yQRJXW?H~{GzzbR+0!$!C`f?CkYp%%2?_9tI)p25JuDZOUgllG2O|dPFRFDpO?QOxRIm7DhJ<#9Sa%^xj+3{g zgu!Mi_7VYDxs?%M*VZEi$TgnWH6dJ%2c(xl*8&mJ;2$u+1U4m#4uYaCWFu^)TCAz= zQeXvAAa}HvlK(W6oC?ncc0e}57E}=?49Q`QNr{O(BK3n0752nc@rohCY5`ad6`S&mhNQ= zT!S|>EK9u%GNUy~ZZ{-Gld8G4tp4EyqBp1u*PW}k3aE?*pp0>9YAi_5By8Xd%&&Nh z;0A7h2mkVVueU6(J5M})f_h_-H$&nN(mjpu0 zXe0{ZDz>6_yLx&N<`2BUDbkKY3Q1?HBZ4DQPK+@m@2yh1i)pzq? zZW+Rg!)T@_%#(d@lo4Wfo1>J0dm&=CgrBfhJnJ8x)`n#)nGRwmMgRg-n}wT{VU{=z zzF=oYD_rUWnuCOynb}@KbGA6Z1$O4s%7Oz_IEgjW1OGrt(_k)KM9!`vOPTBo_8DbnrCd=Co+Sec`iP#_|12V*Wo)InAt45cDf{mkKP zyd3-0*NX<)yNOaAi>J8(M?BXR`yVd6iLjE_zf<3y*Rl1wAZWbU8@unCB%?(frT-cm zukR!Xf?y!5dS}8qO>Tg_*EF*WYA%?=22;WR^2YN%*a!Mka_sZ~XDqF{5=21$`3N2V&U5rUG&KTp_pWU&8 z(C`JL^NIf0X*}qI-sVxi^kw|j4I;#yo%MaR@ZSN!lJO~;rIIy6? zgA5lAeE2V-#2pKF*s%EU#*Tj*ZOHHlQijBlBukn!X))!+l`1iwod3v?Bg>T$UDll0 z(#Ff3JbU{52{fqCp+t)sJ&N?7h!IJfI(-T?s#6XXyvRv&^=g`}T+w{7v*^*Hv1G|U z`twgiil7`&w0-L~F5J0sgSPlrBr8@qeEVj#g9y^2!GsGxn!-V+RHPq2_GAea=S3Zq zD^ostaU{ivl6MFcn9)W^j~G8^T!^|M!_%w(rGBj%;mLz64RYML!-WmqyhZ<0{Iqjt zpSXwD94S2I;^oYnJAV#cB83UjqfWm*VS4rLi(5p${C#5`{?-T*#Xr48bm*ai{`qUL zz>?_eu)_9=Xpxy!2WhU(J`1g)PwsSGv_-KA)s$71TL0=`RX{KTm-<;MgP5|OYuF@t zjL?Fk*1p>zPR7nFY`ydXny0;jB8n`9(AflUzyc3!t*6*=deXrJ_auT;qLRvOSz>ts zE(vcXi9)jsx{5AgVWpX-9Fuyqu(dORNT|N|s?0L4HnglFvi;Ija?Lj13|+NE9_%U3 zaZZ`XBoV7O*dH}a5H4Izw$N;tucG_$ndJ%n1*Z-AtY~tXz2+y(z?Q^A5n+!lcG+Z~ zT||k2u1qg-%3%$6+;X3Utx`xCTom4O7b&XHLmRk=9bZ83PnQ<2>ZOkn$-r^Pg^^c? z88(n0gT{Loi6hu-dtH**o}&$V%r9>~?@OCOxBu+rs;{o;v_J8z-Aj72-jucwV~I#1 zd88pk1rfMKf(VCqsj0btBVvafUYt;YNS4!H-9{$ONjl7AM-=u+pcjE6ZTVIY?8%Nw z-yFcupO1b|OCnt4>?ZM?{!#6UmSO!H#&{P55Lnzo!}V#}BO3_e2t^>E0Skyg8q}Z$ zCl~<)Dv&V-#jiTnKI3rB!M>Bfyjim1MA< z{Ue4ie2VaH7`zAPGks8KD(R z1h&tWEjDBWU$Ch6!IT-QhHzsV)3|dNBmWi=It?sR!y2|7_r*|Wu$$wj$Oshs%%z7B z`Qbkh_bxN`Xpn+DCqf}3pQP)#Z!_Phv56G7xBJmA+2%yvaS?MgO}QW&d)M9M9mr2^xWLVKLUn@(d zv|~!ej_fN*9aX8!Xv(cPR9s0dlN6#|mWT)3e-|^(ZDe>nA8eZkOC(XiHaT4W;eN6r-PaeoY~W2FCXeqU%n=x z)yw6cY>7`(qL7^%&8SeAsW(-k(*L7u>7gGpQrFbd zb*?=@>S*tz8JaN`N%0w1bcXoOA~mp$dqbsRq1VE?aYwPqoNaSz@Q)f~;S6C20~yG0 z*|4^O3oC%^M`}QXm_*11I{#Q4NEWz2-7K(z#=1xiXn^IS4i7P=IEt{gJpSdZu+ z2tnBhWk_QK@YY~A=LHQ(g!LOJK!FQafI^F}zy&T;lD(HaYEK`ETKei(wc4|R zHL#Nv44soMdOJdBZvTX{999XR0mIn^Glzi^MIl7t#V%Gc6p(P4(xOJy49OFgBWzZ) z9>E1P?&OX8jO#tK7N|BJA$}?9$w@y&jVY`SgNGDcIIgbIN}l2Qo?Ik7+E#JG7RpBg z3SCQImcnhgFmiR0>Ysds!z;MLSextI=bix!pFxdIFIt3Gr#r$&KyNKyBTl^NI@kQ} zBEHKul9d5kX4RHTf89xJ=A^OUCn0buK`J*$7m2vTC22<%1cpqjJIl_cZg#s%lob%6 z2IZ!#gij7#FjO)%-{a7pcwkw|%ADRVsHM!_`?(zVd*^zFjZbYYtY7Ds;Y5cjNSl4f z?5Gafic)mZLH~W-8Vtb>+NSVjySu=DR0h;5=q?e;En(-1y|V0f`O02!1F?o-tTQKr z5Pl<&Ew*>xbmzI}aGpJr7|U%d>D56vv(~5oM35&zw8NY(_}9@hcGZ@2;!9FOkOW}` zNLc$=V?Nd)WSz}{7c-b`Q1W@Bd)+I~6Q1rwnK`dr?GiS^3U&}h%M?Kfv$uQQ>AsMk zpZH!v*J&$tuma>*j*vt$@^JrGon+IF*;7rJ+?cKu==TxvM@!EcU1%tsDTnF1PtL#0;g9aaws6d5;U?K zI$>hY(Oo)mHH#7v-L+v7p#th>5*!9*-Nzs{AV{~;f)?}}MKVa)(oscLL@VSVf^`Dv z<8Z&#d^aO;%1085l`Y7(O2C(cjq!cwXF23Ia^OW79!7wpfrW1(8aE{)F3?i56ck*A zD9E)yC8uTFMh2BsOKd2Acep{Zfq)5kd1OEZG>{=Mr~?nUA-ASyJ<)IA^iv$Tf!$>q z?Ph>^m@*piTB)%E-6vw1$Y#}%T`N@-G5~VT;x6N612;%AjbUgr=mO_se60k9(UD}$ z=l^hU1APHj62uc7j(0x6R}xwnX4waP!T5aw<$XHx4LKEYkw zC4f30UNxY9a@Kzv2YZm^jj)7=ZFWvKa0J|jS!P8B4M-7|aXqiXWjH=eHe`krYI5a5=b&AhIAe;C(U}5kZgw|MU+hu!+dAG(k8d zhDSTIm?W`CJFn^D1C)PeMym36C{2Mltc?6ehs-e62UZ;(=I(I5#ZH@3&e$7C}JRzbytXj zb<&fK@{IN-lOd*m5w?w2w^=KwRxA<|<5-T;b&k)ajtT*Y_!vty#%J0Ca6Ca*d6rtU zWSswCoIC)P%9$ZM!V&JqkADXu#%XU|84l=QU8&S;V6n> znILhQS?Cd*DG{AX1S{DXH+g>F$d+k&oi^ZDPE>M4xs983D0PS^5|Wf~#&%fdlr5s1 z=#?Q=L=jhM5~nqzb0r&c->lb~HDJnJFZJ zi&3$dCX|0EzyU5GL=<@|(^E(&1Sy$81UZlcf|LRS=$SQ;o-QzhMTDL*aAs!~5loYv zphW{r(;MMs0~>G!ak!0Sz@0Ae0==;UFHow$Xn^Esj%Cu_1%3$;@#wMftd6;X+xq5lxSVFNvI1u_K&V1RC6 z00vpW1w$a7TqP5pB?H`v1X!R2VvBBMP_|641T$c&I&z6iaIy!B1V)eoF2DguUa4KNUQK#v%c_p9( zmKI^obpJKOw5w zhH|aRvd#;=S;lr=@B&K85i}5istapoB{l>R1=6*>Wo1@iaJM_aW6L2v|%5|Ckr95$c=Q?Oi^CcU>w z23s%$k(qqik`cGZ8@@Nj5hD+Cq=_8(8=PtE+8XPy%B5rMY`)S*8P7YDQKnyy@0lXOIOS zF`_n*0Z|;iTTEd>kVrxLAU0588^^_EOq6Wb2CZwowL}@(3uh8`1plxE>?^w{7i(pu z1uhpwTErZ6wZ1Y3z=0gUu{LLBkOA(h5dQ=@&;emJw?xbZ7%-_QfM%FWTS&At zyqrG&c}k9kN1_YFlR1OgW@#O_0&ck=DPRVi9AP26KvA~>a?r@o#RMqOqL8%${Y%Er z%d&2_C_6C5W^B$@caBJ~0_Y_Wkj1mCyp(6aO_Mdomj=Ft3Bd}P2hQ6zR!N`&wRD1xu~y#r53xMAp8U<3HgByfew}fW zV0FrEzywJkZzz{?U5CM)EX9?T1T64rGE7GE$~texFl#T_tWB$~zT8~@SZ`~#~9#@{E#{+HF~T)bqJ#_QabY^(!I z?9gO@15y0ZORRcrpaqoiO*&w-PvKAjJVJS8wO2$7d@iO=p$+RfzwO(52Gs; zoEtyHoOqD>t(3A{9Zk0x@PiXs15qv6)3waW#b!}0dSt8H6S@Q0)y=FK)(0t9RgiOEoJ5e{F zKpDWkSH|3jJ=xhzmZ4b^EydlE4gcAat=(%k-rvX)C5_pt>wdUBc59~vS`gZhEpKVO z0XcAI~jd_MN+%Ss5k%fU+V7vAa?hq?=AXV3wF zxD!Zg6n=c)?%m$+``3Y85VOPsE&x_mZqMLM;LjDprRd)hQA=Pq;A)N7cs_beAf+=g zs6^e!4*lYsz1fZo*Ube67k-}1dIFUrK|>PM4)T{Tq#aFY9sViI&laZ-fbE1hMWa>IspT+ zeCLGD)R8@JKfsHmso2^aTAq8>3C7{c3 zrg%h1H829@uDVk#<0lyeDB$9UURmJ2i8)a5g>DAHO{F<7-C-@i z{dbOS00rx;7*OuXIJ>gw7`AVWqD#4PR`3F0G>@QT6h5zSo+AW$Ext#O^hsaPcWefL zUF|pEMCEQ)$*kQ~p8tUA4&zxcgOOR#c(C96|K!gM#F`Oj0^%i9MrmdYbn9g|f6yjQypP?j3GH&A^%mj(S zGz{e84=1deVa@uqW^X5;WEKzVkkuxVzqCu4|9kJBu)0q<}K&2X$ zf>fGUwMv~()$3QVG)IUSTUJC^v}x6@t@?6BiW)gGfKhmHArllb{>i8@B8$O=bQLb_ zkkW>X!yge+w0PxT4I4Xb(3t%1Mr0e8FVlehPYaofp+S@R;bN)e9XohTrqPJju%?m%x-grxb-$>R`4KFBsdS6 zMTB@4GXMU&cl77gi!YLUJr5x|dd&F8+&PaM`1R-Kf8*b37mlE)y6O-zZZ+UTW%>KbgM6NFMBO17%B^2)TDGHWa>gPQ8g zE?L@Ys(-k;DoixfRC7%>uk1;$e>N~#TFNIwpYSZ$BPhu!7YiK_jWN8!p?S-3_n+2{6!JHKRyFcMvE8IXb0HAuBlGh_4!C zfQ^F=LSu|ui*(4a$0kD}j7Ys)xB;nuWRSrkk(l_1&%B6eR0q32BEw-s zvo2AG8!WcLVH;ZbOEl3+3yL|kOT=u36$DB_Hc3Z=&bQ0RWiVCEgxj@Mw?2F92knFWZH=70%$pG@Lpm3F>KC!N|vfhDAdYV(8<=vP0?F>UVZ{+G$B z|9|>XDNRY?-~CRO6BX2;1Xu9TametG6|^8C!ZC=tK(-J&Y3d&-I9Jt*HknjOrelhl z(PnI50}heRB9x*^sao>_Tm6FrvQd%3&TvA3UbVuyzCA7r_w2v{(K8NiSQEM`%QTil`Ml9M3jb~IRl z5ooip2wg!$h7w4`5;C#9yu=2(n->#uK!laNgnS_r5(i!)gOseKfNC;|EQRuq_r=dE zx}0S%ZIZt+`BIp}BxX&f)IJrgUVv9M znP?z}>dnV6SvJ!EMKU8Y)i))h%{9jD1v1iM32WlQQK6;?12SHOR{uwY>BXd3s~Lh2 z83vjp(4af-(ajMA^wyVFk~Pu|4@M_5tB|5J;;W`;ezc9#h2!vVmct%Q9?A#2Ol60@d2c&+-2$^JC_VGvu%Bth6qD1n4mD8wXa?v=v|3K}FMlz<31 znB&mQ*QmXS&;{%4SgBC+j~SStAfc^@*_6_`QC+51pM{$WE24uHl(0npp^0iGqhujS zRE1B_!D~F*W#>$frU#l18<~(FpHuz?^10VPH~ z3~E}i1qgX4LfYAg)Eaf-Cl#`&KfCJpg7A_WoB-8|ZBZ&$g0h*t@~jia()(Isln^JI zCLXQ{SCkDD3`aY|12p!t(S(>L9p_d1t%02WY6cF_RJ%w(S`AiUUTqUb1%sZ6Y#rMm zNV(TjLb%+!pK_7}zU`dTZP%zI_wW1^3tcumLcdMgtRkpp%zWz*6JBsE)7gP?9^1Xi!4xNboKQU?y}#k~rQOoNyLDURt|NX0nO?*a}Q$ zYyBo$ikaB0Z3C{(4m7O(2ft>=1q{4gAyC)=OEU0Rk!2vDNVKw?WILYl+D=njI3RB)sdR{Z;S3#7!wMz5ocyLu_J`b<2+5(+3t{$1}M`}p0 zgMlboohLTV@g;}Bp?NnFOlPL&m}%6ci#MS*FySOKI#CI3?kW9l;2|-=%uK{~@`Gfj z?$m>|NE&&vWakeJCu7PJPcqUCo3BNm_2}_l`JccOFDys zn?QsM4wEahH{-5{iz40d0g9S9(8w*#JD%e@y=2)q&~bq&(7d6!h&HH#)?l0pG&!{s znUp(>6Y`IilQhBTCykjoO{oE-xw-dR9f;UDQIQE57%Z!SFa8<`Pcpg@P=Tb=zW?eq z;4z7(6Pc)MkR+79s;DJ2ge$OHLpOxKTuYeq5((eQ0XaO5CrE)B8w@kB9Xl)^i_i{l zIvdRJJ8w~;z-vCIAUqW?Jj5%S)&Hm)3gjrrYb^|%Jj)m(|JWRqs;O3KIL>1z_ejAL z46e{?8q-TN&5;R*Sq&TjsR;SF7SWIj92Y~Y!8q%H+;bOq(jebcwFnVD9V))#!;$23 zl-+Ya@UtH26DO0XKI}OG>{|it8$I#sm|O!t^BKR}xgTPCLvZ{hXN!sT3&)#~HkmO; zVv-=2tG}RPi956i{|FlEk%J7#ff2B#pxZBYyNN?NKzYLvdfPpB3yK6vpa`0INNC`QE(z`Pk3=TpQxy9QZzUdbIdVx~m zC{3&u+d4TPRJkB*K5TqBBmb1SOsP30td0HJi&Bfin3zJK8xBEy82=J3?AgLDTskmx zy8I(UsXN1*c@vsAt1eMPbyOd&n~64DL$V{gu|kTjq>96^yCRIWe-MGe0)s|@r-V2I zp%MWOIS%W9yFpZ^LTrJ*L&S6vyhS`nN6eALTRdrT$jPb1(3%ZQjm<|wurL4jV(U7J1$9PM? z6OE>8tW+@Baji?{E5DEPsB?^<6H_xe4EhXv`9o1#oQ0Zd@nM1%*xvw8^F9z z+&mrVyfXqg5C2`VYN?Or7|~UnmL7ne)wDtCY7WeC(H*QkTojoOSQJ#L(Y8~m-;254 z1j0>|l;oS9wEP-LjfobZLXc=imPjXP^c!hZfn-{N?ZZxNv`#1CzNeznneon)IlnH& z8TZo)nW&j?#4z_^A1p1a?o6MZX%xTuLOH8|Q38ySIi-$>GbRv$9l)52s5htRKIX6i z1jIRt&@8Z+j0aRZg?XTNi;M-$4;bnv(JDCRph)ycjl1g*exe8_c%#y6SV~2f5s?-` zo0b}Y0(zm2SBVf`K{DoYyeQO3iP0E?AUIvavp=R000;6Cnu#9T>VCSVphf0Z7tLbF|WCeVO-bT3^D}rVSemK!Tg9 z6B4k2Tx#>hO3EgBqP9sD4)*^4yaTd-L)+n6wkIkKAY z!wW@08yP6ZRBNikkXcJ1s$H|GR5ODVC>7{{vX2lA>+4kxh>?0RpC=5088g~mQ<@eq z37Lq~uB{#39tLg;&mUWRT>R20^;Ia46uUe9SL$(+qwXQ5_ke41r0la3U@uB zc>m2ndi{#YSRi~AEp`f0$#qC-j3{mq*a$UEgH5%B)tEPmOu`*p{v8*@&6b)%7bY44 z85kWH^jP2lS*X*``7<{&h|;D}S^GMnmc==Lf>}#Jlu~hlC{U!@(2k?JjBx#zrsP7O z1=jp)5uqho-W?f-NZOeY-m#)pt78+XCEjohyESn(9)?!197i|gl9`d8n!w?vb&0AO z3_Z=eP>YCV+<+V5CXLC9rzo|w{Y$n@C%3f$ZHn6!K{Cgx+q*rIysa(%K#%;L#P zmIEQJL0#hE76|z?AdCz%mEGs$LfcK@k;&cNt-q1^ncoFA8E%srb{R08ne;PHAV%Kf zU0yYjS}(nm&m^ueSb-?G9(&vf`kS2i&M44@` zy!XZ12fcxT4V=h0SkbzUg~bp4g<}`&*w>(e7mx#8L9gM!-_8( z;02!k(>5P03Gh0M762r?tQRsc1EF#?f=tg{`;cuznjAZ!-9fJs=719hS`{AJ$0%A+ z{y`Y-$_ZQLG!dX?ecGFeWmzt1HX$Wk#(@+$j^%8Q6G)iFAcG;;W#{x8rT+~IE8Yt% zR+zT^3d-o>fEJCpJ>7mCb?Gs4hv+8Idl7*X@d~3ywrgQP9Yp zToB5Dla*pEkg4Us%?2@v;Ym)~%&D}E2=a;P9@V>cD?}N9-QWxj{lb7tZjjg=joCe! z+D(Dm4cZdXU5qBu-o-UwVw0|tSjGygknG2h{0q7y z$O4r0o1`hon>c284M=WT=BjAsD@b2%iRPArO>#N7Y9`}r&gMAUX8ZNqZ`R+a9&Th| zQT<3wG7iZs$c<~!4F0g~-bRghNf!tDffoQT)HVrg!e#4ApdHebKmQEs4(R|#y5}gY zqz@sRfI$pu)L9ZvQWO4JPfmgrzUUU#Xjr;wobhNjaqMus88vz3wxaB4Jri?03zw;| z_B1wTO&MiH*g`Z z=+GlurzHpyPP2$7=tap0oN2}nqxKi1HeUo4a2X$28|bznf&_XKUnTYVl7SRpv_*4)WTuT5Ac~HbAZqk3WR(es za2qAC9sv%jp6Hl*+MzwxkAKC$BQZ_rhG%YOjF3zMhNaZTDRLL2Eqzl#CIW-{U{M;V zr{H~LwBe|(`GM}itA?{l5>lEu`YYk`wD?LDF7B5$d)ZUsjL(%71q01R8!)wrlm$!D zN0I^gzVoJg3@A-E7k03@y2@A58KzzIumJGN4xnjUR$4CJu;~kN1Fi+L2qQ=u04(II zQiwjB9+Lp8WD)`-7y=|%f|Or*B)9@3czLCYn=2TCCI9$=nooI`zXF}_fm&xiy{LhI z)pfgQ12EtMB&dQZcmgA^0ws6?C183ha2QGy+YlTLk+ZJJ0dha)L;z!`Qpn~-3M7H!^vWGD8KX?B_zmzaQR?*CVc)!2eH&Mn9vQyC}YEXZGSIgAeI z1Ky7_Fu(#R_yPLAf`Y(hp)Z=JI-xYDB!K8a<_wvF2E!CQb4JS*BtNVq*#ZV(LW*P% zo`I2rNR1jT{{6F|#bCiOVKR>JD5Jy*FlS7fJd>ow4v;leWO+$3W)c)OTF6jQ10>O+ zMvo#*sS^&Sb?RDMUn$AC%jCMpyiUBPtK%^ z^u-DrE^3@$qI0ia!-hF~_MFAW4IZ^`zyHut(6vE=MQ(t!E&TQl8!*niM&3IKZ5}+1 z4kyZ^$n@&euUmg!n<@_%S=zWpF1`(C^5)5yAFtl^?AybOXOKe~c4CvsFT+H9@C=iV zHe?i6Tt_>!kduBe?FF7f^(}bVUS z0R`Dja%trhTP(sDV^LSx(znju)3UNW6fgAFw;MMMUxxk(># zd%ZMJ7Ao988*n$=u!3#`@n#TpApg1N-kf(PglIxZxIpM|!exh@rkQf8X`{jsWy5!2 zq*p3tm93d7NoV|dX>GKraKx6gLiuD#ZJ6;-5dYaQrwttqMZ^no@LAuM2)T)@K`)$E zgJ>X$WEqAj0mYI_AkIYRO(yOHnomFprKGsyl3T8gK2p$DSmv_ZuDeJ<2HCr7fkc>L z2c5|uP=M(GQV$9>m>3ygm=+jNE!7W~WCujCsaG%~#+;Pd>I}mdtv%IOzo#ITLtCxBQ9;xf?S)ZF*Qr5;6HVEM= z4gb)ff@+y%wq~TXoSqW~3ox z9exN?h$H@k8n=nblp?}YzWdg^gA=YKk5-}UW8sT44r5bK72XjBS2)PmNlc)y1J@%S z8t|K74D}BYIo#xeP-RwbQG*mY3~^`tg*4|<9l7w2OS7V>6W>gzz=Ozv7JBH(F_Yn( zbe}%T*@E}VR4L1sviQ89J(H^0c*>^ESJdLQDyVQa&>&(8h0)g;vUV>#&=4Dm=pPNT zhg6&jN$5Vd>tyrQ#uXcMB-lUCM(aW+fdREv(h@xNjZQXjTK#yEIdFweNe6q@KLppf z3u2He=n@N#(lxlV!2hU5M4=G~g@gjNfCL36JmI`vRJataU9y{cw}e*I%- zEi;aC6cRI;)PM$JjE-Ey2t1rnrfP^1&qbtmM9WcxJxN?o4mb%=fRSX3Zn%oZ~FxZudh#~_m^yz#&Oi4$Ia)N(sU<-)3 zBle=EnQLz5eE%}Z0afOdf*T-{R#ar&7HHxtifyq^ohcckb_SA{6%AS7VFFDY6`<$g zbB+0Q)D37*gHgQ(o8wW_sdgjCHuTVUjVumu{8@t)T%mfE#Gix0UU?6FM<^(5LK?=k~6uWF8IVA-cS<7nHvcioC zBBGd7mi7W9xJ0bt8S9?O*gZQ2XCK&rhc6STVt0~nAn6gp|tS4rWO46Kxs)m0OFhT($g zMtUD;wGXCj%F_ASODI2@859lv672Rz3Nx3Tnqx#|2fE&sFLzx8lL+Vs~+x zEY||5w1RM+2_|O9z~&4_zc$&e191Xe5PS(uEXR)uyU^MXWhr=K%y zL5M~v4i5_28yw7lojO3?KjOnD5cP)!_M8)AE4*0Yq|r30u_Aisi$~RAq=%>l$wp-t zzM9kk2V96Ncw)vIi$Wo90D|8+mr_h<_J9c!8AumftROI4p$9wdA8YX@q879Ondm*k zOaJkPHN1c*3mWJb5rV*iEa-)AN!V#~eQK_cyfV8({Smn~sFmu9In8R;N(905n7{d_ z1$YaU3_21hUdcJnK>#9GZwMJH^+IKFst>+w564-WEU3o?_PCi9_#>&L_uwF z-Z!8T0jda4h{6`Kpam^tAq!Esf)y;Lf|`_!tx@4ssE~{T9XuflSV%S)ki7*iAb|&9 z!WvaKCz}7L=vSF64m%YoCdXvb&vK^Ao-_HA8?G&0TpO2*jC8?Rt~rBfM%+=Al>bY2 z;kR+J3~IoqqRKdRs6(opV2X_Lr75k*NKN4Yn0ne;9f)rQ{`+5%2W@gfA6Ycbz4254 z6Ecy-&sT{KjA?+QYonZVbF%A|r``F!L(?E+La({^UUkn|BR!wL6H&;ZmBoGn9q3B| zUT!d*QjRhTT0iM`3pB(54qcjJ@SBRrbg(PY1;Ok=Xv#)F0w#{n`#*JAQAdd|K~(|^ zSO)|4#AU!upfuC&GHA-(=~CNfip$>(Up$b^%=pJMF3f{-ikL>k)gtekf^sKH|NiF6 zo7@oHGPrq2g#Ps3q5ky13mM@2v)!fqalonFs3JE%;sLAH7?oE9-~p;xlBAuOm|Kw@ z#gup%1W}yVfSe8FMgxk-$!VaVnMMa@;O!|z-u)0r#G3eN6w{5!3n&H3@k*`j45|f6 zNL-rgP1p{!+6}&7pv++MkzlU*pbq?C5Q2pFJs<2X6!jH{x^)@+ec{d3q5lRITviO=8`7at zbq%z%zzv1r<`o5=)kRUbk}GkQmHb7?u-5Z!U?LJ453Uwf5k(2oUe+vy0_7EJ?Vfw= z8mh6|f~8*Yts3!xBB5kf401=LnIf)L1zXWxiIErv{*kX-+WVv;s*zw7+R*>>i~BiO z82-;{nVU^yA+%hf=E=Ya-qtEHpx{i2|MA=7z*2MppuvfN2)*GPPK5y$g#lt?9de_P zG*@$N;RFKWxGW73hDuVDBh#!F^oa#~}vZb8pd}q-+M}Q;W@TDt;jAP9E@fI?W@lEACS9dxY6WeC5#9h_3?A0^ z1R7q3Bx#D~Yr^K@I3x!JW^7u8GX@TB5>8^;rd9wCKW17dUSj_rnOtP*9?bP-a*7!( z_2z6UCsD*wOh)BGj^jT-j*Y-2Gd`z`oLm^qqf!KAAFAFuYUOsCr%^!Td9vhYswa>{ zBjfO2kWgfNw&zuZ=0;{@P!39K21+9VA7$2OfTmD%320GdrggDpfw~JqT3kX}r-G`P zegY>_geOr*s5?SvhHB_hIA>dqz`+d;G)hJdgO$rX0R**~{YNx8|szL>G8cv%so|dv|i^Pk$VCt;ms+HzxM9ONe zA|-wLYOq?VSGeko!fNAjrj1hS8{Vq0I%|xAP@swnnXyZ+4rWU}t5uk)1OaQddaI2V z>!TiPnQ^HbHfrN=s(WrLkbr4+e(Spy=&mv(1WW+ES}Ukh>l=ovNt!A`M(J2|D-g{m zT*7O?z9tFb$i6;jV1BB(mL-Eir@=}ru0|`bf(8G*+H111$YwU|b4u609!a6Dg};id zd{&7@HU5Lb`suhTNxjx9q#|gt=BvS`Yr9O)%0k7^QD1MCm#)%?S>EfJ zC6&(()xat(&Iw&kHf==G60tgJdorxX8Z61aDM4;+)Ur#{xj?hNvREQ%|>?~Q3?NN+hQIK9OO&=m^Bv#berDEF`WrYIu3SUke z>=D!62FXv*WKvA&n6~Vw2B6Kh1(wPzys7{SkU#~9t_sbaP-IRK3|=5=E!RQpKb(LF zJS7RplDisHAg&Ts+#!;EomKpYQ`9QRk(~bx-Qn=|Vt1xu(2^ZbeIw7oN(Xjf;a=UG ztWxUYXCE?dNc@~4_DUN30T<8(Un-&s5#HhkE`DlnBdGufP#e7T;vH562I3aipe|9| zor`G5Gdaah)i24~h$<0YttF;d;uE@EKS%! z_cnzqvF-*VBv4Gj7l7~=Q~}n6t&sZEPcWeXOGVeTKoO+D6s%uVhzJNH*;~YL`{Hod zjO0}aV$-y6_!T+k#XQIYU-P8_z zffrC52ipi_Aeor93&6pyb*kxxR+r{BDaShUtTqMr{y`<%K@nsyP`JPar@>D39YWsk z=Wg&vaDW+9awVt1gwW}!u0_10!6gfZ)eY@2+5iW9fgLYvO8o~Hv*E}&i`)$(Fw0$L z$)Z*CuoD%*DW9?(NU;le!38gK8mv`$h6;hz@hRW2LKW`VL7&(ifgQ+!W(}GOaDg3v z1YKlSHRoRZw7@Md^G_Th_M%^)nJ>ivmkMxk-vVP`5bwSn<{qBgk?p_*n*rcY$20?z+eCB@*?Fxl8J*87<+}Aw?;T6Fjzp@#ikm{O%1_%*d3}On@@e!zn4W|%W zl-JgsGzL3S%K3yG*g@EG4OexD|BRjxRY}Bwk@TYQjZw4gu~lel&NtgZ2-mS4+<-GX zGzfFS1$%F5CB+UD2TIGe6pM9=#Iu#8K(EA)UZVPaLRTn`8 z7|BNrv>b>pl3AxgTipNSbcpX7Q*5^(A#;EUu#L5)fCk96`0DikEpofSY(%!Lj)=5T zbgr{jfGJl&1e}mn^8m-m0Iu0!FK2KOv_KW?00|sH6-1W|2th5Ma}f{-3Wz`jOaU%~ zS-fz-4pe~`2!ZcrPSPm$4G4h}#|sJ+K^0WNPehPU{5J}CLH91}Dmg`aD>WD2z>#H+ z7kB|Cqniz&E`X!Je^(?>EVvZIl=LaZ@RIGwIP|#Lzy*H+2TV9ny8s7N!5`QGUYB+J zpaA!BK?J04F`3Q{F!7=aXl7kt4H{KT*P z4}AZz5(|h5ae)7ZZ@KjT!x4xuf$+)>z%UPZxa2yYf>*&2;Imtc#;I(bs0BUH6PY^gW8#oU*#f-}V2ekJM0M0Xoaw{A0 zDMp%LJdT`KL4Y?=r%%BY>_ANyvba^j4Y0R+=dFwwaDj$2BzNps06Uiw=DU&r_f|m# zAej(M0Z@oQIrI1*e1WpdfC#+u1=|57cQOg&Hy4b63Xs5#a{&neg^lB~>dy5k%fSw) z5chKNyI1lN5Z*QOxEF-W2~4>q3whl}v>8CN9DH`~raO@d_nZ^3F@|4N!K@&HOUEH@kDMRa^36 z_lgV%y+a2)a9uq(qqYrLwb9D~5B%$YpujDA!Ldtw1l)2JkU%-VI~q*DO;mu}=RA)W z0SDYX!0S7hxGoQ0)(7D za=4_i^XH2U8)?#*v15l}8ZI(+*r>=uj-4VZD607K2O<}Na$Lx0!KF~hgK1h+v|;0+ z4T=^m3N-U24ag}bx%?UUMWCG>J5GY+!sVcy8!lX+RQV?jihnIK+Tj9pU`ZSQWOn`c z55-3=90aC`V9*AKDh$p1;X?5?Tv?Wz99YMMXHLgUt5^`XL3qJkq`fc z$l%}wq{OmPTYP-_<;01e5+8nf=wfha(W6P1Ce7iiRMV?jw|4y+c5K=HapcRHH+S9~ZqS>CTcD5{;o}#$a&s1`0QG^v8x^WRC4quO zc`hj8s)dUBaCM+lDnxkka7A?#A~Nz2QQf2>9%_Mv3LrCsz4GLctAd=qXkjbUR1nCE z3Mw!nCK>*D$U72*c!&oMaykM9s3K^qh!zxdfddk9;sV02WC|_9!-UAFiWpbhK?VWs z(BX(99I}H47a-%SuY)F{X*3?`8Y!YG6ymS~4t)H_g&X8BgGCNLN<#&rP}u*$4mnWZ zz`B=cIP6FnG<->*FF4?U%s+~7v#ui0ECQs8cqG#fg=msNK?Zw*5rv-Q;Gi%H8~v-m zBVv-Nt|LV7u*|6@M5sz09=c&LnkpiUPcBq=$PBXV5DdKt)Z;)y{rDp?f-_a%KrcIN zsP9Yo;xehL!rCJt0e{3RB^PDxXauBOSgn$)OY#a&ro(RCxc1%mqad3)c$1 z=wrPdRwMbx8ftLi(=i`<*##Ri+5v@}rhqAp3R0fgEfjbNi(}K6OxhVE8!NC?*DB0&0EF05FwJlARUbVcHeIQslVU+_0Rtw-u^4dUpT_)UufpF zKLZ{RIcGYP{;V^n3aFq8K_O5M6o!H9z(oev`U8pF(x5-=fC3Xs!w61*0`;)xe&vy# zuv#*t>b>AsD9FeZP%tAC>JB6a$wLcF02%GDC_6PYO%04@hZo2WCV#NO%c>VPjfm(E zQZi3lkS3Ne5$X?SSQ}~lG?kCMr)#B=!H4W%hKMZfB}Wp8^FYIzic|(66!8y%wpU& z(*i;|hy_K|K@GSPlc^NJg}URx&oZJmg%m+bdh?7NXes}P71A<-UQkLIHL#ToLZ*8) zl3hlQfSTw1!&8fbUKTlE0~6L#kKK#QS4f~J$C$(g837IC1R?|$1R*Bup^6=9Fad+; z$t@6jfpx&8K-667EBiv=JWV4ma?$fE0`yput0qQdBMwMQKc{K!0qyp2K`eM{JY96uz*PHd@UF zVAC4*6v885F6$sixT@85z=1<`Yi>j>h(x%s#Pa`ygdtfhTI{A!rpU=?C~ySROcJLN zi@2$VEjfr8WO_NBRpfFrA<9SiV$>@5>`jFP2WnrYK7e0TpeGANmw?xREqJ!AwFH~|GTpaHPtM2cx3 z0Tnq%5g7opFs13r$_yhT){HSzThW>3Y@ouaz;s|0V08<6N`w6h#0KAdi1tvhYwMzu3lP%*iofMf`3{s_223`3|JTp;{u5rJ znb&ZRU2SV4hXWjnK&=GAP`RK0I|%=ozzI0;Yt@i z7L}bIxzHacO;*eFg1`Dn1-j&&4SZyTXOU9KWj&bGMAhv%6@ivXGN+tW%a@XB zmI~xHmAdLm$uHT|ScJAgs;T-hhJDFDW>~{#oq!5%5*M*RD79&(%G=V@Cl(wC za&s}Isx~q>nEPxrrfq>PtwQyO=pY4gQ9**aPyv6tsV!AFPjyP!N9#lnHF0D0U?82V zD%1*1*)vw(Ng(uGkG%@@sq6outm{55Xjguoq!<3KU3zetcQni%AibVFfz{`eH>Q{U z>`i0ckc>o}bumLmwnUJBjHpCSBk)(+LXe;o*>oeRrAf+?B>eo!tRUHa8hAvymPiCtZxRG zPZ=z-qa`%Qiz1^gpdxM{11h+nEwbV(bmky>FCm=iP)_R~ctk}&!j>YiFh0bj0)|K| zVk&x~OmK-kM&b(`B8v3ptZob;*uye7W7k*!Y(7wTY%QDIFN{n>ZzKgF&SD_qW+ApD zDe8iEASC+AXy7=&)N23W1j-{-rh+siFDJ^#40cZrs$fpu%8XWm1A+i*AOiaeq&xm0 zoeW}~h>bbm$=GPm4Vh!vR4={C#h(BQIOOFG1uDMsurwG2rKB%zvZsl3M-FU8BYF+p zhy+bYCn@AW2+jj6IP8&xLM&g+C6?$RT56Dd=^tFNjHd1c=uY~MMom^g2Mj`YFs7$+=nFh1h*C0yd){C0!<822zu@F#Dlx|&?E;6^~UR6lX!d3b;aeu^kfqXlFKLXN;GV`ngM6cfCVdk66{2=1tMpOrlPALO^iNMZvZ4NR0DE!KnGR; z13s)eSRe#~KnIW}#1gGLVZ}Pwqb7?@o@|mnV?&?huwQ@!KS{$j>eD|BNGkS)@Zw27 zq{2W6BQ;FpJ*7}IhNsoKGlmxLWFYN0Jqd*>bSflE^jyPD!iOtJ!#M}T0#9p3PR2SV z>jCMdMs|utMWaSaltw~h1)4+z0|~FDQS^E-?&y*$N@waGaEtzqMojB4X@oB+Ei@u+ zi;n;FWOh(US55Ist80$)HHu6`Lxa`CNkWrUE3XtwH`FYPGM+$&loIWJQ~-ODw1Fb= zKofK-PVqV5v|h$#T>kSpAYcOU)DDZ|_4Ma9`w9nN42$^Hq1%KU39!K9yJhGcdO@Sc}zI?WLeb;8M+{&hrLvf zI8?HLmNhh76_D@BUWN3_Sk;1^!hVh z{WT`nYh%Srz2*5qgHCCmTG5`W&2Qps@7X%axikk zY47!B|I}&yhk!iRT#Z(s+E8oP_JDwuZSz%a-?llDjaHfMT0a)r#`alXQf~X!Z~qo> z1NXh^_1V7GVd({D^_FMx6>aBhJ_Q$YBUf^bb!q9T^_=!@?WJk;HeS0nb0_~7bVFBk zN0(|-GFK0lCBfES5_fFN)@Df;c4Jp|XSZiBmnA=!^+0xP2{&*Hm3Ds@c!PIa{fT%t zSM^l4URW1%xmI|a*Lj~8dPk#j_owx27f{U>Z#j2wk#{t>mv-xiU!qrh$JZoDh=e9K zCAIf!rB!UTmwa0Td>80_=a+uVmrfs6eQ%d~b=PoE z_*WQpS($T%XBcoz_q;-Qf!VcvId^eKSbQ~j_FNc%X_$zM*r4hbheiK*e@j?zM^=T6 z_`OgFil>;0>4|y&A&Enlf%CVA4H$@LFJRR)jKQ^EtJsVqHV(5GUVNBo`B#CbIDGl= zCn@-h>zFx6ui6N^#R`M5Q38J2_j+GJRmtxb<37L;|_LPoh=N;!mEgN=(BTv%C}N3NQ$jh6E@ zjg^^~HP?;vw|lJ>n2p$#>DV`-i*wc#c)W zoUfSFS;l7S)=!vqc^&R zjf;>%8l*>Bq(i!+NgAa~I;B@yrCXY%U)rT(8m4DDrbC0KN&2K)x}$emh*O%U_xYyZ zl%wO9sLuqWiyEmVTB0M-fK)kOvYCXjcb@1Lgw?p4>&18l+LFKGi3^y7&?I3>;00bl z2YSG)&l;`MTCLZbt=rnI-x{vf8VBZ@uIt*a?;5Z3x~_j<3HaKtmmsfu00#t{um{_) z3mdTyTd@8x`hC{vpc(aKnS?oySp2_zgxV)Tf4LS2ZZ3f(;K_To4v!^ zz1thU-&?-po4)7UzUv#m@B6;ho4?W9zx!Lgg&?`ho50t*yP3Pdh2Xlqo4Om^x*y!Z zBfPrDdaRNA2Yz5D&%}bkLY5JzXkq)qq1utFdbY2cgl9WiyVrwP*tb*Q!h664ULeL} zdaXFG9A{doz}0t+Dl#AyFAlxVB4Ae z)5AT~$6ee#9n-m-+jD%|Q=QG3T*%Gb#;yO|(PdrUXZ_iKK+mr&wg+n8!|RfZeV+(@ zYn?fip?QWGg#$`J2ZSKnS76$u{RO7I-X|X0E1u%#o!Y-0JjF%U7!X2 zIY?ZM%NF)*nPhcqpcJSDejwK09O8|B2ELx}m%i`IJmj+;>IYxy3tz&8yvdn+$(dg3 z+5FMH-tTuD^822`U0?=!U*As6bH(c{Jq8Z=0{h)H9`3!5%%kOawd2E?2;gWjAW6zI*PIFZh9fwU=3 zojPe`oJuw04Ivmfkf=aH#EAcYV8e|b5@QdRGj1?tx`KuZ7dcf7 zU7>;lQk_Rf6LktTC({%+VKe1flB!RiQzh#7OnioM<1TQ&FurhkXd5aW8vo32IY^Yy ztyZMbG5f~e7H?Fr{7dK%_op;E^xtxQ8N|gR8wrGfKf&%t^i?wnQ126LSyQ1 z5f^D_WW%8cAtXeB60uaBi6U{d-JK0#7b$r0(O|_NZ(@jHbj{sRpi2YRN1s6mu_O?v zDzO9-s~sV9s7f>>st|-QRs_+c6C-n7CGZiWm65-arn!xDME;F=4kY5Rf+M6CcPR4Y(y z@n|mCNIrA}{{16qyy_dCY&Vk<*p34?NP%*K zQkv)qFGMN8R<~YIf;@q1ad8S!j5wez`sqXkDe|FBR8W(nSSN;5xt$6~@FTALOD(2L z<6Pnu7SVCeUhcw|8#$-OI@+-;l`9zQ5=NDV&7cEXAOjeN06VW4a0ME8K_9MwnTYkl z4s!n>ibEvU2P~Lo36Pu^@6whUA;_Tzae3T7aOGfd13 zXjA7uS1^QKR`Ug1s8|m=0yT%2^O1I#Ld~A3GfHBCDASZ!B!Tl0n5=*cf*8U~lD4c? zW@MaSNTLvmIm;BR)DCu#*cIq!QH+{_c$l<;3GNv(A>f9S(NtzJq0l>v+K#7@Oo9JA zAqmqImFPxZ!+?(}_bwvc@v39dTpQ;|ug|qBbX=uZzqEwavYv5W|A@e%T=$tDfZ+^b zAcGcQ02<)bpawkP)NPPphGI74W`e*176ics3?M-ec7TFkV^bR!YygtVvq1{1@JI}8 zCpjxfB5IPTS!vFauvq9r3iw*gg_!|lW-tR6N&r$hVBrsT&{OY(xSP~cGG}HG#AyWq zg$m?W4!Pw*3ScS+-S(k%=t0N|nz}ReoQ8fYJWUBw;6s*7EDClI1P+?l2gUZ`2OlGB zam^5c++u+Xh$!rDZ@GdcJn{;UbU_dLpxfYXV7$eJ!V6BzKh?Tm35AeD6hi;DK-8$< zz*4d8#Dw62-0oJr^(8C^h-+N%%J7@ay`M+u$KhyZ)&(4h-h8`TOdM=rVmy6;F2Mj% zJNyHrUCz7HwL|n)&_oU-5uvWlE)*h=h6oq-u)q!3KS0J}i6KEbU_{eG zF;GUdn)S+FVk20x6xMmcv0ZZPvX%IyRVxsu1S~WFSKr!f=KT^o&I+ zm@gMLV7q@vEO{_ZB252bEG|R2I3ju3Ik~al5glPmOEQkLR*ntc8oUavj z@)5MTSGY;@Burr{GvdzjfR$u`d#^A9PL<%;&6C4Fnr8+K1bVqHHp3rO4YH5+0S64= zLLrv(NX&$6v_oL`O%2T?jAe;Jd$0D7gReSUE`h4_7#`wz=?! zA8a7B54$Hjd*_0G;DCP{7_N(X?PnT?dIhI-ZwC4h1wNAL1{GM#R?bXyB$fFe{1S7O zyvi=HYTZd%uDaMI!vWR(Lj*hcn{Qy}R=ASE3^?FPMo^>Y_Ywa^Vm6WGF6BV+J^=3p zPcR^z@D14-sX##{Gmvpk3tTzyRSu1hIeaf|hcuLc2j%O7O=wU9_*%FG60;lLUx0D55s=Y-M{OT^az3RkbgYn9Unh(_P`1^`1vlG znQ&V_cJIC1Jz#hFF#e?o3E)jA#rk&x&x0iM)Sm(H2_6&Gvz~uIgycUU%jnp~)b>BO zf;F#`dF0L?BflTM9F}le#y?rlKvV_EXHZu#UqcX6p|xDA*M7ajKQO>4ekKUimjYKX ze8Lq?H6%(m5mT8JO8Z7*H}eP5r0V(^Uee0Tau# zKsxbr%)|plPt4YvZ~p#zSjhj>SGEx`juU>qT{0aX(_A>$DIgBtL40~o+W z;wBP8U=bj;0w!=MD_~07)-q;*h>FMnLg#B{Fkt_Y*c;IlGB(jSy@82Iv;rGoh6clK zQSehKAc{7@0}as!2gn6@r+$wWTS!MuGr(GZfLsp~O@fFU(bH6?v0U0VVGD0FCbOw(u0CQBof(zJ9tMqxOM;Hbr<;;V>MP4`H^s;IwwFypK&Ak(>g-% z193MW41qS##!NOb1VaEaw6p=@_5-@qZN}0)!Lv9Na)7gR1j+FOkR*l%aug_`Giaj& zIiX1BHZdXc1W!PdNMHlSqFdOZ_lYTaC^GHyIkOu8%i>@bx<-(V` zb$x}v1xQc@;DZQIKumUU9I(>^6|r1p=>=Z!Fd$4`7a$wW;3{vijkgMf`jha7h=Jlh5?f8 z0-sz$FdV=E7WQ;Ju^&9Z9oG>}P6!djv`fa3pmuNsR)~8+(J>t}V%yh5?qvswH-;{9 zB27_D{L}|JVNiYWJs+xMq31}V(IWpTK%pqc0hm-VKCx00V+WX*a&{mDe=uxka}(v( z9wlRxCbf>t#1Jz8UlpS^TmVb_qXI>cpnaeO7?1`p!-u;!F`W`q8_*n-^iKt(Od_L9 zWyvfFK{zaWEG3`>33^Jk!k`ahqq?M{=fP<8W>R{?gvQ|^OtDOz7(GU6eFpezSYQXs zk*4`LT#JMoy=0~QC`F^;r0B;3X&NF&QwS5Y1U9*U_10Z`N+yyMb!h<^6KN!1VO99q zbsf1m^NASe*(Dm8s(P`WW)Xv>`hqB+6|nPk`EvuVLMbH#6rV90AmJ!X89hs|1TVlv z3xpyof)pLm1OKUFKM*J!u{i(K8XLhOJwgyW&MJ6yRV&hiK+>WuD?uFavjRsTlz6fP z;8g>)qK=|s1m`gkJx~a%R}j-K(I8E`5I`JzR`Vjv!g13lc8*{Q7$x}p(V;ga68gq*jy~7|WYBd?+HwN+pW}pN$ zvk-OKw+qrBp7F3JSfEadFcm})gA*)|YY`E_HOfUaoJ#|BQ=l7ED$Ri>LE21Y^Cvc#;UStKUo*fX zwMtcv5vuxGw(pX4VcQq0$|bE@zOWh=>sc7$Tag+7uK|P+zhNjL0YyVGAxtqT#%ny) z>Nrf8x*6&?)mp$_BoQ$SE+AqphzCXf+cD@v73u>ib0fJf8Nk15l)%C@GYc#g~G+u+4GEEu0|u!7zl=9esNr7a|-al_7+~ zCyDpB)C$3`j3OKp$H6nTP65k%+mkn;F(6VEi-G|Ja~Yy~##Fb(^(n?)9CaC47|Bd8 zGDrc$EO!5v0Xs5)cqFVtkdw_QSjWy=6$bpx+#Jr*Q@>N8H0JCnJ4%F*EWjLbCbh{b z=OMEm!6@r2!Sx&*K>DMJ_s(?LP+v1L;*z1@49@tvE#N%7I1;W?F)7--LrDP=mLV7B zX`ayxgI(OrdI82qg3K6=81-4vRYx$lBS|}xLs8t&C@s!jq!|OP(k-p5PbJUjJk!P2 zCu|J755j~DQ!=b_&c#O0L37g>EYvy7%1o#?nCmyN^3pD?IDZVsc>5w!EySAPAs&Jt zypqxWY^_P(@5LTykVO)Z8Gj$mrUc+fnCa<0?&_J)bX0nB{3?CT_8=p*VQw_?sM5q zkKM+LFQ1uDuuR>DFhq7As%`;DyOq?bq5Y zp-%+dWHQynEyTq=)h|uXzOC5qG0FYW(-y4Lpn=q&!rZEBx)uD>)veD*&E1f#-IfR| z*Mr%Y{nQHbzs8;3-|5gufz?>u(7@5OiB=h)N|CmWz8yK+d~w=IqSpF-7w&uCRA(6) za6lHuzcjJX?hV>Gl-GRC(wu$J>Yd(w{TpWDFc)6o8gAhj-r*O1CM6^+Fzn$BY2E+l zoS}#9&y>x|3=JNj-PrwXn-R|01r6Lb9^6PA)Y+3gFFxE+t3N_8MiDLGRoB}8ofohj z8M1xk6#&gderB~=t4)NHM{u!<`%}BT<5sQZ3v8{o5xtxR=Fy8SMSL1&PCRIS=4zhi zY`*4hp61fq+4Vc;8{X0>GbVJN=Y0)TAHLHj?kRe%-0U3GeY72fj?Xy#+|I4KvpZX2 z9_En#=#n1k->5iN+2)x3=EFN0mwx74zC_2pASu}cHt-Mh{p45$&G#7=Tg>Em!QWQL z%&yMXPTsz#ZaPC=c8L@_IIsk=BRf4{1VUg0MQ{YgKJ3UY?8=_($o>N{4VeXPwm!j??#{m4PWmKAMp;a@84eW7XRxK zAMw6^@!h`e4?piXppqgV^4ER@RABNZpYPYs?bK!J{}9Z#&f53M#bY(=U;MR)Ve|XK z>b4&9mlNe2paLgAFqI+nthFDeGmDPANiDD_*gIaCBXGoU-g{7`6zJtP5<>( zkN81f`bdxYO5Ylj!vVoOt`QcM+>(_4=jL`M&S@zu%w25B$W> z`ABm1W}p0CFGS4W{LcUU&>#KMKmF5>{M4TU$e;bnzx`X^{M!Hh+#mknKmOuh{*V#; z#h?D@zy4Nl84-OMUoFu@l4iWm7+U)exZfm64jD_H{{T_p-#~%|4IV_8P~k#`4IMs& z7*XOxiWLu{;DAwMMvfaTegqj(kZQj#?M%UD&nZs#Yi)_io<3eT(GyTR6g)n*~pv zP!PFo=0c4lo!neH(WI<6Arw(G@gEN>jParBCM&2t4C#X}Ckc0KEu(7ztWap%%?76QMZM z1Zh1m-_z>HJ72SpAsp${Y@i+i9k4`*1SHfmCl~BeMkuFbsLDhWx>7kk_k693Ap((VvPtsv)3nvrL{;cUQb!fCpiY?^^rlOH)hkq8 zd$l#$lUP-Dp|4a;)zFKiE%niuc9RsVN)Z||%VYnCC04ImOX4)##=b?iS#=o_VZ?Pu zdi5k0Y2B~YIp0NSz4dY|*WAW}eF((0$Bik^;9iNEVh1fQl#I*lOcl1NnZH$mTTshbL-<>P39j_sS`r9xH zT<^?U!Cxo7c#;TrFlbOSUY_UN^BVo5%%3lc_MdoD>a-bWzSj7XP?y!!#@FqhpzT}s zek95%qh7AzX?DJSy{`sJ<8Rf=9=9rKP2VK&)$U&aw?;Yp6%2RsgG=-*GCc(5Wj!T> zpvfk%E54wQH{gND`vkZ_IayF7=R4nSLPr+2NU$Ld)R|r4hr-H8j&B@{h*e-X!^f3x zAsS2w@{XfCzx-`?EQE~$E5bk^!sUSyj9~g|5|KCokA^fHVL?DB#KCNDAXJ>q?6kO) zBG&D8U3`oSfhI%8;jlb`dtw@$X2bu6=WXH7drvPI(^$< znLL<7H5PJa_4*75+0&N3)a)SoBH|vMV#bi*O_D{iU*{$lyF!Molb>`WX95>T#dOPw zzvJXUE-5a|>2Z~Dv7S#L*Os`^uvWADq}!rszCn7XE=S4VU?54sHOBIlaG_+KR(Q;( z{P22p+#3vOM6p^?GndU0o^W{h4?3pBfCZ!+Gvy-37`jrNo(kqblIS@#(#xF`OUN#- zNuFOav6rfmC;mQVGPs%ZoL*Gn0sq-T=8X!1y_;u3FqlwA;gVhC>`Pq`+QV&Ta-czM zCHpSwm?K8;WU7JaUpB)=DVqNWF$^`)2&Z_R?uGO!j-(|8Hww@!3UsD<84^GFRvlqB zWTL#;3}T#!(pfpQJc80D85h${Zqo0jj&Z3^{rOb67?UTE#3xCGbCi4%RXAPs%}T`r z)2Y<*kz3R#Rq>L{k62QzL~*81z^PQvL=`&~Vyjp6O0J4pEtN@;2~P>~R#xUQt%QY& zRq1k1)ugjjV%=*=z}hOu8iuS8DyEPSyVfsmmS9emD>OgHnZEudww*=-7Inq8mi3W@*Nscd$PTDb8>DoxoGq42coy`NgQx1i-N9q_&P9MNKDyp zaI3xKb`ZKy0?>3jq}~uBcet(F?9CAf`> z1WD91Y{lc1x3Q(|OmYOf$!|qizEY#Fi;YOe-fA+ex#@3)4}2ACv34~Jx-4xED`WR{ zmdJCdtc_p0<4;yhijMN}SwguT7aqB=^BuC4ozll=7Wax?eW!`L-D~v~3o$&VmLSDd=PJ zLH;}G5m%bhmoERatza>1clC7Hpc5+NR9bU8-?i-Gk+ilYgbNbOH3| zw`JRR+e9L-p$$DmkDHGVvT>R_Q(%A{yV&z|xB95vR<0@5+;MR*MId}{p@@4YR|4dc zGyU#ndD|=oUx>F#y_2`_o7{$VxUe-_KdJI3yadPiX}IhYdqIcty9diUhi&EV^H*cz%&0ZO0tMlq@=a7oK zo~U5Loj+C4wcXc_Cy?)*Ij9c!-Ba#YyU)Fm7EY4^zl&?XO9$<`Z9FV}t7Ok1d@(^U zX`~H*mOfhq?HWqD%_wN^hDW|OUysPtP2WuT)~Drz=g{vyzj;Dgo~gWR{pz7wZrwkI z^cI6X?O(Dm0T&6TGYU$_dp{S{Lqzq^361X?wo<(;eO;K;{^> zgK+;pn6aYfgSSDlHu+-+3B(Tf^C0CrK(=eM4D7Dyv%5awIssxT4r)1zxh?^uKMrgm z15`oFNWhrNGP!xd{Y#egLyzl|i1kT6v|6wh^pp+s!BfjV+)F3@QyFf1tXG3TZWlK_Em!BpX60%&+^S z!R!dZW+5QLBf^$j!xeRyI zToc4=a>4>?4PEoV6nsQ3vBFNAkNa7)6RgDZ+n32$Kq2cvP=q=)WJT%N#9RZeCmjF5 zQe>?@saU#&jzfb99fe;6!(93~MCDn8QVN6hVZ+ z#y1=mdXz`z2#W<1NXYv~`iOuEILHVBHGJ%iWDJ;sm_!&%#Dc7y{}Txb`NnUg$WA%P z2++j_i5qTY$X_!*u#3ly# zT1c7H4q*%lp3EDzh(%7RiW$kiq-@HkbjqlN%Bhsfs-(*78-WR!wXG~LT7>^XhWtvj zz)G!*H4qZ2v#g1Q2+YA0 z%)$)JU9(7ati`gplDCUUhcHaTi~tFk%*v$9%dE@@h^fA`70e{e&x}ma6wS~i&CxW? z(nQVERL#_6&DC_x)`ZR1l+DCDdU)XwhY&hPY2)y%=!Qi$E;O?lfX zA3~VLQ^3JIA>%C0_>2JXq|flI&-=8`{B%w;c>oFM&;Rt#00qzi70?1D&;vF9&;&)$ z1y#@nWzYw8&4_0SFl(GL~T5GBzOHPI49(GykC6lKvB zbOg+ z{)E#ymD4-5(>%q~Jq^$l1<(-1&@&a(G$qtQHPk{y)I(KN59QNF)ze3H)JUyUCzaGn zh15&6)J(n7E&b0A)zCx*)kPK6P$kt-HB~Rg)Kt~fRaI3?H5L7YRs59y)mWv~S+&(# zCCpRR)l%ivUG-HN9Zd`k)&w0^0xi}8Jyrls)&O1B{%lqWc-CkoO$3!z(4^LBC01-T zR&7OAZdF#&e3x4lS6m&}awXSuz13b-*I#AVb?w#C)KGXmP(l&KymM6zy0O z{n!!>SrHxC5G`2`J=qRT*$`OSmPH7UeOZu=S&^MtlC4>jy;+nMn$ncmi8Yyv1=@@i z+Ms>Wgt$?oMNy<3QKcnOru|T-1yQKwP^pywsG)zvaw(1hQ!Qh{rSt z!v);LRa`T9%Q0H9^rXwky*Rtv+p)X4#l_srwK!sOKEfT`pw!&Z6(b4pGrXJS5rDCSOg4kW?|d-gekeRVd(=A48E zR%Lr_YWWWZ61|k@qijYRCPI)_>ZMV9^2rvQOBL#AVS#eQsb7YD^v|D}`l)KFnu?Is zs;)Bs7V1DJj>_DpxTbZbO}6&66Pdl@#i&JG2AdbKwVvqaLWc^}=|RRuOJc5sIRJsR z*j}q`w%l&(ZMWclD{i>tj%#kY=$@-?y6mbes;LJhEA3rBi7Bs7ynE#wGg2y0#EON*sk8E< z$0xUpvdb{PEOX2>&unweEvIzmKpAI@kk6R*ITV+f7PKsX5wCfa11XKbK?^O|AcNFY zPi=M8SYNGm)?9Dxb=P2jEq2&sk8O6@XrHY%*Ea0X_Sf z3#X@kHR`BCj<)A)Z@x9`v&)V(?YG;0HSW9XPB`6pqfo){M2T>M3Z}cwx$Dd??|k#n zKQF!Dq>pYr<2&$>efHOPU;X#qhmX1THdOd}fC zsKz$35rspHqtzG~#5&6Hjt8tC9{0#YI`Z+4c7&W82MNWjeXwhX^jabf2|`3RQjw2j zq!cAdMM|EKYA6_%PbP4@G1lOXgbXDpM=8ouw(x5q3?v{|smkc_?stug-Q+$8JkGr` za=vRND|e~OUSchkTqC70O-amQ8nc)hG#v*j5P>i54NFObsDstf4pTEYgxNl$}*N~Q>a1@N>PMXbZo%fT0l1{P>y<3g)%@vGk?X&8ra~Y zDD9|9N9o8(Ueuy6W!^b87tX4UGmpx{+e{5t)0g@*rWSo?8BHRXvaF*kDiWrIzb6PPkKfdsKB)=Siu;tdeyK0o=%KJ$N|)BTUyfk z)|xkrS~l6K*WzNVm&^F0s@NZ|5$H zT($adac?^-D_t1K-@3QA@J-_~m8z4Dh`@p-L;(vputn6p_P;6^feNsiL9f0xwqSj) zg5%5JWFoY@5N0lTpG#r!TKKs);6V`tE7=Qo(P}bK!C&J>gA&sKuZG?3T|0+ZyqfsL z-X$YmD=0?t#&xor+ktf#3Q_giv67)(u#g)}v((H6a2#oQ>eiSPH?)Z zq96xT@Inws&;s7BpaduI0TpVHf)ot-%tdA?-mEy#mqz&i&Bwj4oGVP{!MY#~W)N|P z4Qqq#=9RkW4crmDFonCyt;9T_!Czf)1UuMu#og8LU0=-Nx*nklN8mwST|k92lo)Gs zUF_X-tZ5qv;Rrmv94-yVSvj`(d1#JxnqxiR5JWjd5Zo|_Ik*7`Cz!RiWlhhs>D9*I=G?cb#@298t=!~JY<5B2 zR&&SI-Dgv*3*_*H*Sg>z-2I1Zzx&#{Qc%VYY~2^+Ux%FOefo1Kto8@J8V3U9Kh{oN&Jw+pgsSGwO#Y9oGI-rcr$z%DPZ4p-|9 zRNw_iyPyboJ_6y>kOnR|+zWC@Lu9`Y@h=2!;A!}-9g5I79#p;tUpPYOzfgp<%E1d9 zxB=t2Pz4oK!3=4zE8^3Dh9an7;9LkC4+?HNFQnlM3&+}j_dWNwiJb9Y_(v7+`~?m~ zobh*0wd8yp_nKoCl4Z~S*>}zXqTgBqxjt3@KcgCi6kwnWjCeZK4{_fhXaEnQxcagW z!GH~0cKzah35r2UMqmdz@KsNc295@5ezj+1 z!~$XSM{ryqVmU}g zE$9MvumUKE0A|1iQ^*A&xB_xu1u8gu5l{q0Fg11{1a5N#T)=`DXatMakOD%GjXIzMDKLYPg*8}6a7ai-SA&jb@Kq7V zj46Ff7jbJrXDtJ{$en=LLW81w!x#KbQs;FmS^4g9P^lGJu46;BqWTa6IsXESLs{X$D`w z1HOlZRq$#}bvnOP1%J?ZU(f=pX9t&Q1`#lqoOwr{$yjnFRMnlqdvNm z5fA~j`2e?B5wQu90wI!~SduHCUw9B~hd=}&fB`AM0Rc7whY$#x5TzqvoE(rzDj)@S za0g{T0~BDAJ({LJx~86(LYug4M_Euaq?AmVo^~2Vjn-nb7mv@!1%vl`X&?kuX_utu z0=U;!$5#Y9uzJ`3n0sGP1@g!RQL_Vdxt?4=0y>xmSyTjj*?K3)1yj=k%crT%hIEopfhh2(C~&7YG^5wmia~~>sH3L5%BH^Bt3W9M6>y|QIuS!!teli> zou~pFP-e_}0u*opBJgs~+N}4d0W2T_C7=N-U;-_`0UNLZ6i`9YdIBckt-$)L>ROt0 zST^i6r{r0u=NY5)3O29$1vh|ionxiU%6JhVcrNg*QWG^cFsmr{T6rY{Pji7K9gjQYat-cX?G^bOn*DtOA@ zRjUE#`n$i2y26{YIm(@2D@gWqqo!oGX$yfgdwn#zxta@iom;(H6l(SsR{}9Lk-JtG zm$_B{1GkIBIs%b3L8w*^hjQd=H6L3;?MpS0>%41=xe~~^;JH!mO17w~s~a@D{+qhK zI$yEj0I~Z3KO4J3JCatqiB>9AqUexV#iYKww9cttEO5aX%mM(s!EB0=zr=GR>RIB} zywE$n&x^LwOT8-0wsUoH+&i=L`@-z|HGmtx^lQUoBeQvf!Yb^xxeB^eQ&g)%x*5d5 zM*P1!y1D|=6VEv=HIC*@R>`bv z$*Mb22N86)#t;R(El{kiuAIxPOvFayTE6^W@`Rqx3$vn3%*{i}Ze^o`3}l6@%4Vm_ z&|JxjY!E_+YYPF%+ENfBAYfg*#jX6!NKBMED$YO|P@3$^oGgcfG=aqofDX1!&Rj&B zoI3ODU%p(Fq>In<1kU^%&0&0Gu`B_zyb!hQvjj0g+4iOVywIrIooVXOLK#iJ{L8^y zk#1DK#@tfOtWCUpL=??BAALH%Op1ogotkJ${>;!SeY4YC5Y_y;3E{d4vCW_VL|f$i zi8uYG9;DBuJBm4N(>v|cLEWYu-9~wH&e;pTrX0j3)M{dz(IH&a@jTUOw9=>B%~)N* zS-sU--PK(E)m|OeU_I7iUDjlM*4|9A&SVfWP0)^v5XM7gC`8gAMA!Xmymt+X5S@y3 zjn^Dx*HleHFf`HsMZL-#)x&jBMijW+w3%R&L*UcSP%YV%ZP9`KUf-$^PkhZyd=MXV z0$zKHTrG;DJ&L96iKpGQVNKerZQ8A^v%|#GDfGiBlybJ6a4Pp&MJ&{$dC3Ae*_R#M zs>3-;9jarM%B5u0-)h#(jn>ZH+|d2p(jDDpy|Qav5N)m5Zw)Of5G%F+F+AW6-Ut!i zAIvSzgxuz2i{M=)At`XX0cgzTLAM8-9)^PS)$l?(50E?2O{x3=!U&KHwO^=D05D zr$X)2zT{1Q5NRIew*KE&ZV+c~5LCYE2R<8Kj^$vk?qW{v(XQWRe&*f&>Pr>r8sqE} z@$TP#=GHy}%>M7n9`KT4+cDkQMg!==KD&bs@C+~T4nF~}p5cqG@A57XuCnR<9_bn{ z=|ZD1dSWpJzU}1h>OP+7A^+s6?%bX}Scb`#qsGkZ}SC#^A^GSSe^R1ulj=j=&Ex1?2Y(fKm4iQ`Nq%r zMj-o$_X{7v|OV)oYme)_7v``~}$34ZiEkM}X3)pGy( z%v~JjFA(j2{?JVjTs{$eZ|>iJ|GVG&+F$quA@%?XKwV@8e}J$3~7QDjJx8vm*Imr~`*2NGJYg!vDG1D7Er#8f!}<%E(wNB;B~ z6zI^P0*#6gSV8Ghr4XGug!)t}QmRLBUi~*B>sGB;agz84R%}?ZW6hRDYgQpy6dc;V zbsHD%T)A~)(rtScZ{59p`P%gwSny!Ng$*ALy!XV2#f?Yo)%zE+$`*+K`Nb?b?pe-h zJ$F89nQPXnR1G6MI#qR4)~gW`g)LNeY}&K`DgHa*)uqd;5<;|m>6L<32(^vdKAv3S zN~RT=GhNzRy6fo$k6tg0-KgP#p09!?yAnKSz792Kers5=XwmE0zlR@R{(Sm4&$~5v zAN^nMqrVM29z=Q$}th4U`RLQ@w(9nXMF-Rff>v71$bgWA(5pZnF z#{ZlI&&a`2Yq83wRIC6Zt8fyrOA<%Sih{vvx=AJ9fGZQL;bii%%`a&)v4V=Mq|?Qx zv>Wg`_GJ8u#+0CZvMeO~QV%aFS90(FP(>GIv^^%}3Y5G@4F!}>`SQdRPdn?33QGo; z!|6>?-GuXm3I)3`gbXFvu)_~Wg_Ts2;w+KVO&5X{Y`5-u|MUt5CkG9TJ5W1SYsL9}7l!V1)$+xKU}Bm7t0F)yyzt8@6m= zqZ3B@Xr+^8dg+CUUi4?Ffo>B2Se^L`(q?Qoy$a@+9}HJ8GRyt#T;YiGI_(Jsd??GU zvBfiPOzpM0Zm@W^cxponOB8DQlJ+}rA*t3;Vyf*%+*iUfmRlgLUGwyx3M5xCBpz{WPyY;@6vK6{Zgwk|u5nWwXH0_isX-oHBQ_jmQ{ z1N>m#70z}2z-7lRSj>*s*GI;e=ie#AwAY^Iu;Ks+peaKu6Ab8FhB*LUgh~X#6H~y) zwZaI5eE0)a?BF6ls4b2EgNO3q2meO6AGuB?&cfhW0%V%OC~1QH+mdh^_&n)dWhS0W z39Ev0JvPmdffnH&1PAoOYl%-!7c5^2J(E5WHqnVsR3H6jbhjEQacA?{-vj$+rFSXi ze?Nqt0Ixzo1EvgtEL)%tv!_Mn5pgY3F^mQGWW^^DFD_72RtWJ}A3g37F|jM*N>FIL zYPoQWri-DP)F`qV;^c;B{D%(HbhaLX(UL*Llp9f##Z1X3iRBxV9|2}CQDUWFfoos2 zq!<%O;cZ`(qN57mGsKK(vQu4*h$TlSMx2n*djBXJhZ6WIU4oH~w6rD8l=aC1`OJ>B zE2WS67)|y}vuM5lJKC}UiIWYUkZ{bTVtv916D``3W5pC*BV+PN-c)aglvEcwF^9=E z9x@?D%-DRuiNQ%xGmrjsVk()nN|>~=iZ)sguUr|WSz@0aQTo$UXGVB@#Q;% zIT!_2l!3=|s682?%w+BJS=89WSIHBWgt{7h9x*1}`Du(|8J6>*rCA33N8ehiC=Zk6*(L|D zEZNW`H#*GFp*ChXQEbg_%NlXUuP|q+8VNYyAIjdeto8$pa^*YUv|{tD)q2!PLA#f$ zAmCk9ao7&Z4CA&$D#9Vs+9j-mh&kZz#w5IMd!Z2n1KIN;?@x4u z3s|QAR@vFXx0@w~a+Fij+50kUzbM^j&c;if7;}rqJuzyzTIT?MJrlJrH8ns=0ICXy=?eA?W}B-(kU0EXFH2U#fI}8p&Q!bElWo` zxfV&IZTw3d24*MVo>ip>bZK9+@UbEwjE8T8YG&8l-Y|OUN}d)q%Q`uth{q(3X^N{^w_UmLLQ^>MR~Am_XGc38sl6Y$Qf%0T<~Gw6vhs|y zeBtEI@l|Aw?yE3m>um;h&WY`FzogypL4PUHVPtf|cY4J}5;)4Az7d4Wdg`@~iPdM0 zb&F^nnS1>;oFzN>x$;M9hewREQGZ;G|JlyPWs;yv|M0Tkqb6-+^; z$-WfO029EztI&Y#lQy%`fD$Ny6exie*g>3-ffVpT9^}ClV3^COKA~xW6^s6gdMo&d z!5n16q{$7&z{3*!xE#cQ63D?Eyg-%E01W8EKP-W;>Oio1KD`;X-x83}bDRQ<3hF8* zyQ4ao)3KKM2ciJ$&h~;VGV@LlXI53>A2R7qEf&3X2@r0UMabS6mnm z1i=$<0T-|VUUUH&a0`S{0Tr+T6>tF*RDq?zJ{{138CZc8Fah(M!W4Lc6i~gD@IxMa z0Uhu`oM?e(Tmfp#J{vF?X*3L!n1LQxfqz&+DubUD(13qf0dDlc@0+r3#J+8O#u6w$ z-}%NGoX359t0C0KA=JKvX#pLuMuNEtZQMp?TmgH$rfh-_6QINYHk1K|xy2J`ffkSf ze3ZzPNP#|_#~0{E=$k^4q{k9i!GSS4_W8H1s=dH_w@8#bgm5)As=OTHKg?T+bOFFc z>MMhgDwGp4#8^O)%QmixJ@{aZ8CU`wkV<$of!E739$11U7=j^Kf*$Bd4pe~(xB;mo zOC0z}6v#-0QGpv^%VBhZ8$f}$d>RdyM;+(^C)5E_DwrPR#v6nQGTcTX2uC2?#(#Lo z9+ZK!^viR!ff<;Aj_g3o2*MS3NM_7S7nDb46ar@a%7vNC%H&KWESMU60VB|X&D4P- z+)Ew!fgVUUy=Z|F*hV8T0wvhYj(iV+LX7M)ffC@xW$euV6SRRJz=0kp&KbB2#=ypB zv`l7<%d&C{(%ekcR6!;R5VCu~*^|k|fy6_T#D$ zqSV2atPwe}BRu$M5*t8*A6P-o>^BaufhCB@7Jy0}(12SED;Lnu6dcC1Y?guH#Ui+Y zSG0i}SehP0&2;?DDf36{6HIed2_7^|W_$sDtg?<|Mj_nH9o&J$^c{wTDHPzv9+&~e z6ivbyn0Yh;ldQ{(JfVR}0Ua;`aD>Q()KDDNQD)>(b|e^TRLFn$(GwLvAANxzc!9X| z3hZM}Zsf;isV|CrkCF7v7of|$Og4l;OC>0QkNimg5A?v5_))9)|zz=*53;}N?Q%eH?>kL--V z!-xwWP)DRF0U_v2`_X{YOo4&W03+yu4G@?P6d3;$f)rqkU{o646j32eP4zMw3^>hj zG=U~O#)RR^Dow)%B}2`u#=H1NA&||}v`}&^*1;&4CpAK7>rrfaQy-+v%hX7Lu~m3P z(Qs^46%d$g?ZIsfPK9|=7+gl|bDh1M(iwO|oLIxU{5w){Toe$=+)R427!icVv6V%bFuJP=> z^322v;lxIznNJ)qk|L);g^#4WEL6iR?pwhdSkUxr!m!M#6HC|TBhYe4PaV@92lkbowp6g6p-5`-9|PH+MdN)Bbb5kV;T@GNgi}R zeOpo@aWPT^JOw0V9Y;8K{BWfC(R6+=vCnu=*+{wZeJi0Tg_UpBo`Q zwYaPSSy1E>+1klSLew&YEtyzU@f<$?qs*eO6TQ=Tu7iS0{h>Ic+0uB(tP{rKU zT-E2T*b)%dcx}aJOqxaFNJ;NBBS8pxJdF?{)ZP;oJ-4!qbYTU*j-GMlS zDY|9JXcdfd9a17}QKR|R91PpDG#Y9x!!tyfDLm0CyjFwhK^dJvB;#vW)zBwd;vxXT|{0>MPdDfHeCPR)l!0b3nWAv6LTkV{3R51MU6?l82b z16~Up+1=Zml0`7{)WnpH3HRKxIqgXQqXkmyMFGThTn>#$CDl;yJJGO(+#=NhlibE_Ti8NLh+rN&tGLkwNWg*jwutVIH|1!c~njcwgj}mN#&Jkxl{{I!8gxUo^42|8!F=t)!<^t1Zcr?hQFT0M zg^WyhESOhz%x*o~wp~~MdY)1puwJ9#fE&=#qlHFSRac0l=pP_Q)r?KMTmcUFNT=z+ zACT8*ZRizn%nZign7CxqE!C~$!SN%EAbe5|Xhj#8!2xc@e_()TGy)f3)4iPNRt)NC z#nrk@%{-f*2!s;s#5wlJlU_mQn+#8wA=yd7#8BBWwTY7-V>i%qH>{w^nDvt;?kXHn zl(xVCre#SC_)%ay8sA)kFbqbTZezM7LM}#_A2k9EZ~-B>0arvCdzHa(EI%cEY6Yc? zzYN>c)Bz>X0lYpdEKNss>}-Y9TZT>v%2Y>&UK;h?#lt4hqansv)kcvQVKuM===owiZU)PcmlffViK7i`v7 z4DG*m?MA+VGG$XjPJzbm)g`o@ZgQsLX$bxT7OY_^xbyf_hTndHoKxWS1M8dB9=kjd< z?rqM@uD*VCOwUe70Zs{zPM8Kwn14NKo`KioCWZOcn3mw&G(Qb?sV9Ab+Wu*j$k%f1+Z_zs&qeW)w&((v z@r!oVe~3Zp1#KJ2mW$JQQ9$8_wXg;5*O^~9#plQ@AM z>`G|7%MtzU7A}D$a7MUIQpY`RXGB}SZd`BtYoKLPS(fBpT}Nh&b=j6u*PiDQjr2B- z!GR9i-+@2a-6oV8**VQ3IaowuSPH<^dqD zMlrO^m1p^Mjrj>J$-X7}wGU(ya6K00*ifp}w)R*#uXo16k_NhS%gb}I4nDFDc%}F; zH!}FGSmNTH*-u*(i;UQP+>xi5#}Yt^z!1Vc=EmwHm|g7dB7A`$$eqOGSyCG052k1T zT1;_Tp5GaiWkgxaT_i>qD0k(SN5M?`q<3+G@jyK7#*ROlx1>j5-$>}Ue&=WICR9g3 zHd7RkQD=0C`VRk>9Qq- z2{C8NtV#2x&73%QPWU&1LPv-a9t?#@lxR?c6h{1m!1Jljs8DA@JUK$d)vPO3a^31x zE7*cq#b!-vwxGqd7u8yX$d;nRhH?jP6AQFW|o@M6@`e!Z64G5-a%b zO%XUS2Nx<-Fh+6kFXqR8I~r!pL51Ifk7cxIk>a%D%c1{0{LJAs=*+S;(>AR`$BG=f zbJXrVyD;Syr~Cf)8(BDU&7Fleu5A#-X$>o!BRq)LH+IZ+S*!RQczZ|5E;Ka%joNW> z?cH4rNAH{bY4Gyr7hDL@e#N-@tGiw6U+sKY2?*AJ0(NzvR|qQjl2i>&<)BXgoY0e5 zM@b;mQD;qX!aoy0_#lW;xiu1jS1FhviWPz6lL!Ts^%9;7PQ!G z=K&g;olbH9C3au(xT#qQ-Kb-Zo*GnRjhvp9R*I>fh~P^hy82;FJ^^LcP(>MJ;aN*H z)#0nX+Ei7EFSVp9u_u-&;6KQYl`K;d^+)P|(Y|Hbv-X*Kt$eFViLFMKY0Irf4+RC- zWuh&rD7sS~nl8JEy4xl8Ht_IcmfQB6Q1o6W;L3FIJ6(~HiR~%jCqKqD81TD+|{v{+4LC@{@FU>Xo zJ1@@h>YOvrJNw)-&_DZZGtotJ8mdEF5j>I625Chy)WmYc@vE|)b+J*k=E@WVymm}A zum_VgY}93oT^6$)IXmjoEl*2Vwfr?bH{C`H9W>r|>zy~>@z(t};QsFS-{5YWdN$%u zGrYKh4paTG#Aj7p5Y}dG*x^5qSM9XeBDGXfM2w>px{4o}?6le|x9u_qFtA>rYV_ahGvW*8qcUdF|zSmgTMUo>VSP5Mhs#Df3cTs9nMo1~mQckm)I#bP-zB9&eF|&Wxs?Pvd8LjQuF>K>| zWgZ>3%Lh^{kb~?=H|qLGqEmWa*HUqG+8g5mg_kR{pmu1DpY#;^jq3&+Bd-?E{4!8sWf$8IAzK-Y$2|t;Zx@m z*%_22zSChEGo(DFM^8L{)TIafSjtj|K8&{iER~kT>9rtArLzpRu0g%4T^&kLgYvYE zvD>6VWcNB{CQYg$IYY)SChjF4gHG(J*T^%~BR9e}rIUC1@)Oel@H$5s5Dq zn^_-n^k7p5T0t+br<`D{j22365A7`@e{kG)>|-3f!2 z!WMSdPVZMea8W=RNDW&wT!~p92l(LF@S+ zgyu7n_s88hYsZ_cc@AH>`7hDhR!2MJR#i{DDy%y2x9tqBAYJTL%smdR0v@yXZoJw0 zer&31W?L86+s_Zbd2VhZa-w~PXNUm0x`*y_u7RiI#|#^%sO){F!GSsuX;|<;nWB9ez zbui5ud~Ww%3!l+e6{lUbVve-<+Ak(`15NF1RC9KGbs_f%d(7Sdwzqgq&LqBrUFSS6 zTH_w4bFrCBYrE;2tyCT2!oS^>X?IM^8sYNRw#~f&r`*a0md}|XZa5syl&Qq?RtmN0 zt>36t-Z8whpp*XVr7OMZOnU2v7O~0SyD6reTIDE8ar6ehk%D8)axmr? znO%9}jb`Lnt?rMSk2#l~J4D?#J2rOb{PDhV1nPcwI^h2<_|i!Ipd7jGUTavT_mwuZ zG+GgEITeZo6a4sEx+g-h~(V z*$=+`jh}jhP%}2Wpl7ZEsYiE&6nG41lyT~$x)Z~>Bs@f2jU@~b`>7tN#NfV1Q1dn z5e^~K@mio2N3S*il!c{V;^pAcWFNn=5_rU*M7$vViNyVJNPg*Gw(*~TeaQcj;J=Mt z9f1dEeGxbrppzYh#r2D%@tzM}pb-|K9o8Wp-l5acp`Xd&)Y%&pa!VY=k?>s$0AgVY zj-UfM3UGCqaFrc#u^?0^93om3KFy$AWSy(=7(fN0L1hytCI$HInn4Vn5b9wbrXnip zp%Nw`-W45CIiV+R3j7fkR7q8dJzo}noq$vg7g`%6VjHNPl+1<5IR)UdXawoWM;Z!@ zK~UN(j?4KGRYo}Ap%e-VsG>Hm;x_snAD&_hZAtDK-3CVEd{CMI?Hja+U{&lQSDYXt zewrhOn!%0#ngzW|m8~7P3E*~!(_fuXC7GirzG4q5VBrBFV00rlE~G*-U7sLY7!?XE zYM?>z;3=(0%%qo1K^~7KkK~cnh`8fQY++q&UQ+bmha36XK@u<)=x{F=fz!6kI6?nmFwkB)7rfYh^7s#d;cmbi*C2rc~)7e06&Zcix z!52({pp4_*3FPlBQwU`HwM5j&6R#9a=T8Sh!2xbZk!>MF}>=<-W;j~;* zItHY12Iec4W;Xhy4NQS+wkK@9r)yGy4D6(C)@N=q-43{CYfb^70OnkkCxl6%El%O| zb(ERC)MBnARLT+}RT~oNmt<;0Wv0|kIA<9qV{>h0+j>YU(F^w&-f!rhUffeJY&|sAh`_=g^&~iCQFp4q{YY+D9r*B}N~_Bwt3TAfsIW zCru3Lb|OsM=~HLMU$lVe$mJA4T3k?|XJ&NcKd`5ZerbCSr;Lv2jPhB2x@Z;j3wpv; zh;mCUa-x71B990dlVaBWIjAi`=ofCpgg#7mz647ekY`0{VpbHDs$u($Xa~C9iDrk> zm7*T1sEx8HrM@PNmMNK%X^rY<6$mHnH7b`N3V=RiDyg2Fx}=3h-vmH_hh&8qdfIe? zT31=;JwnKzx@n=jR=RV`^R(h{DMl%5VFXB4AOr0SSWA2Sl_(va%8d1aeYYwwl+D4emI zmTE?(N~*F}>ZN9?vo_?W!l!E5z^CTbM83Ij@b z*Y1>?)kV6{PoC%wYu(6}>||iv?4!y+eyS$i#%-s50lx+c+b$g+?%Cm$sS4D94Nw86 zR)G!p1qON`?7`c-8f*fK^_#I!J(9_%kBJYAI|4o?m%CLl`Q@&(7s=siW513n=o}9{jnWQFzq8=?$c^p z)K+NcY9@w4?17DLM}+NJ>_^wuFY10%lmH#j*~Qq(4~6v$aSG85q02|788RgIVXv0n!cywoHq3h>j=&xKX!DTG-c?eFd zZ?10TjKm*EY!Ipt*6QJoexNSbrEWz+T6M&0G-V^Xj2FL5q*wy~)irMEUy@5tf+OJ$ z;g$q1r4Fx8Zb=2to)RD0CvD3!{e=Y9F2~U)L?|!wIHNp7ez4V>xZirLVW;qa|XfV)9VyhyV%*v0#8i_L;0m zToec7FGmQ>U|a?2a)@CVhH*SHLeQ%;60R3d#wYv438eC4d{K`6l$ewT2Z*T+ATC|l zEf_-`uNj&U^I0ulV*`pt0)J`0N}vtMfS6(i;VJWc3Z8^4rx*VN!Fn;wLNCYN-YL#5 z9Q#EC11@|5E(I4Zu>qSkyDWk zft|2)Vl3uXr{-!*O#l%he-tKOZBt&d4Ddi|9>Ekq^br)nU(m%PAM-Kuu12?j)`6yF zi~v)lW%r zujUlUWi8LkWY9og_AW+a<0JEQ5g2x-CU#ht#uNJg38ek(wQes67p;M|2ni>0M~$x_ zZy6y=76llxK@(p~jp4Ph%t&1Iq{^*R3xN%c1P|0^YsPI6i1J2Q%RtmXWzRGfB=<}| zbxkjG9CifZ<|W)JcXGcb74X1hWaDoW_4C%%XE=!v#BFc-HhdnzT0>y%HZ)!Xr);*T zjn-yOA9DoqbPM1$F<-IxMR$19CVc)TSf95;9>HwF=71N0p-Ay~`=)PKfe=UuemC7_ zpyp7&XM0Zp@0PU$f3x5|an#9%2;`;Aw&;RK^fB|SY@7gI11?efrIg&YYSQgnx2Aa$ z=TXtIqI%-OqFd^%ATR$~>4)qam zKm|zgS5tJ#R)-fC!E!5i6;OAKTlnBU@=@}OddDqwvnH4yfeMtySHmq^Po03%Eo;8_ zfVcN+!Z#0C1~wZSYPRQqZ}+6$xm+SMeKOrIWAzkkwfM%dJ&IIicq| ztUFUD*|8_O754_Iu1@YNiEpf=_RFnyP;?DbM1V_V8b8nWR259Ylp6;maGb|^5zKO& zJM|-*%qkxS4ajtIlRI^vJGvi14U9kyq>FJM{{gy#Il525WUOYq%O_Dz6EYuxp3iJ+ zCN~eH^P?7o4fO2}cynypd9rq@q3!JLA+Q2BprNGZm(r%fzvql|b@3L##s4<%GPqrp#aCnxef5Z6okEM`uxumTSbx!+^}pkV(SeS{aJu+#Qyk6B>jYR&4YR& zxoQNn|AVs+%hZ>ZZ1-c*Q#ae!Jr$@sJL9D7 zv;Vz+I^oCrd?s0*E%@hCINb^-K*(qzkl?_9GXDLOQG^N=FI65!gg8-R#fe|0>_BL+ zU`LKETKwZdk)#)pA3df-IdI1pFJDT=v>5T_5gRKz7J*suWsxZ|fkvFd1LsE@M`i}4 zsDet&rZ!N3^!P8T4VMj@R?)gu|7%jN4{s7om@sNo4oJCn&3L3MSFCTdaxJp4Y>T>O z>5kRAmv3Lce*p&;Jh(3h6owHWR{W0yW5Mqt)VLIh{eok4#V9h&rL z)1@nA(srbji9A z1wzUqmlE6x#fvi1PzJPS|4ix#he~Qnpb$|~NQMHd*hxmEzM3dQz4Svtr|GH?0!sR( zYY@P@lFL%dExF`NvBbcnY_c)MWUkA9jw5ckHPvi$w|`EU00O~kdqA()W(#c25&nrl zHO+Q_3m`l{Ly+lCax+;E(ZYxQrdx*LzP~gzZ5op-4q4KZ-bv#hRo398J zMo{6u8>=XlzEMLxk5sr2x-vjpalQ3Dw2DOV$Q&V}f`%Gu;HWG(Rbc8Z3r(c3Bm*_F z@uQGNQt%`eary^87lyR3(x9SMsf8zJG}6*vDS8RNqVkIo*rvQ_$f+uzk_x3EPb@ND z6}{a`2wlzM70M(B|E3Ql01r)A;e`_d^UK4^BvWEBjl*oP%oxpV(2WTVZnp|r@DsM$ zXv6b1ICWDkO^rL|csRe1vrN&(mRnS>&Isfx(n%qmBD;Zgu0lKR_~Jl?9bui-Jf-K` zL4^}^?Uue+VQn>O`qs@=Yk;|qs>7g6v^2ULiy$^7)<&rAEuOqM;)o)S;DIfeoaG5q zY&+u6L!dy!dnFfC0K5pGU@T&XgKRhoU5ToYK}1Krg$YUp+t#pJrQpR%B6xdj+%AL*2--mj-XU4`grg0611gP!DNw>qAEm3%ar`5nGu)5D4@tDjB;-v*c z2shD-bp%8_{`d?6d^tpSPF`hpPBjOatIIh^_Kd&3u5f3Jn z5G{m`^JyH2l&POSs&p(YrHWsCc&L!*#RM9t=}m2#Q=D>Wki<(^pfDNK(?Cyp)Qe<7 z{~oC)0!r^s-*YNx#J8oM7SEG1@EOmd!^6X{k^`)Q()`F`m`qjRM)`x6b{b_Ey>I{| z@u`n?ymrU3loUNXpx<6T2Oa=EXfMm8pg!LNA|N8vpFS)|eg-QOt=fwqD2R^cxT&Ey z4m2iJsNqKjCs4;-HYF!`qE~ttP5gwevSVDyxOAwM9e8skPV`C@(x?&_Q4_YC?TF*L zm6WIK2SmKGNEN~r+OZ_=C!iG<2Q0`&uGrP3WicR?ayL`5B(slo5vDNp!XZs@EiuW_ zKnhAw0u6|lyyG=*dC|)O4piVXHKSPZ%(Nw-KGl0~%FSyWNwTrj>15H{4Sj>E|2*XV zWvV_+NO3seL`Y$^aTO>|Up{F->-J zIsd`InW%@eEBVJus5uu0A><$W>Xk$ql%d8B`B`ln<~3I`xZgtLU#;D-Oe)7BA@Dd@ zo@)Y!(i*&n zWlDD*9t;Lbkb?7$8oi{}fO=cWQ;E5ks(~4>B>~L5H}Ppsf#I+9^b43d|E}=R=Nwf*qLnYy*0C6=<-<+rl<=Z}ayNXdo>$%cRN($!uxY`H_Fr zV4M%h9g7BJXncynn;+&+tx(fsVQ=mnu{by>Gs4A4K^mO7Q!PCfRs@{f^> z@Y5pqK+`F*t_)*?c$qYJ%AR2F@bZEe%wPsO(7_HenDjUM3}^ z3a*}YtZ!ZGS$Ba8R>Ofovf99d0hC{U?Ns~z1HXVtYC>-P7uQhb|6{Sfq<}Re7-2_j zF9n?NP#)|T?FKq6s%)5IqQVek%4-L$B%q1M@+D$YsmLy-%H`5i0~g##@G?b8q(Am)vEyzh)@J$Au5N`*KNy4N2ZfF+VAjz#PkVObs2 z87d+n=&+n_rZa|Y)XSMf^v+x!%WWCU5fhK`-gYg1pr?jPPx?v|?89P9#}C)gyg?AYqy|D?kPknJy^joGTr!W`vQ zctEVejmA`fA>g7_fQzlBD?g+RJx&GPSZq6_#@wVU^3acKw6FLa=ib&uS|qIS4k!CY zB(Q8`hSupH4(_*@jQ2W3hqMfDx+OudY|vh>i0}z-q_47U>m!JSC$s}wTEO-;$K)g!+F-O?f&8eJJ2s) z!@pF61UUxp3<)sy4i+QN-3Dd{8U-*6gYbezI}Xpn|H^Gy>?+ah0>UN_F1+9;pklkU z>)_DCnwaERT58$m9-6k^)wFkjBG^4NQ}5Fnx1fRJO|38tR!|X z;Shob@`WbAt%(Mt4&m&iHiXP1f^^;>$?l3yMJG9%tYxg8B$D$nc6F zHcq1+j?fHEI@(6AZe=WDtRYZEy1J$uv(a}_AO$9I5>>G$QL*U4O9Kd_rihLdi*g1? zF)5L9DV35GjZVGB0({Y4`U1fIt9deT1OK7}KhQ6Bjj4Q17+b~!kI_uHV_>|1 z1z$?={O(d>5bAHAw41v z)1~7yqy?65Uh3ttJaRxL(ja1PCaUlqkqbt!BhpTeDhd%U5b-e8O*!j=OQIqLL~$ok zaXM9z6Gg2AN+~cxu_>9dJGnC{pOQN~qr1qb?6QPU<}2-RQ8iFT7yW`4t4HpBvF_B9 zc`A@F&eC`$6KI%mtNh{_se{6%k$^&sO0JR8^kN&=#vAV{8+*x@R19jw?am-nJZ5Yi zmvB{PlOer=hDOqT?h&xygLdGiME%V~|F45F3oallVjv4nBo6YPN_6FDw07dhK+NSK zcC)u=YYKLBS}O94s4OKkG9rb*BlQU+DMBPS)NxLy2xzBv*kWfQ<+V~WZ@|x2S`uM4 z0-|PeLThrm@<>bUA}6KOC()D=fl|D_1TcuwJK^*@mohy60W`j(JZ14b0mTCAvtzc> zsO$vS^5ie%WCC*I7Rhorig7F!6+chVIT*uXrgXt%#0DHJ+0KW6rf^hz<`8ouyBzCk z#sj#T5inYS+>TQ(`Et7SYUecP2sDqS`XeDKR9-yCOEUBi{U&jA?}d0zMAi{Pyy_xi z6j&~^%9NCGv_&^Vvssx{;dHK9|C;3slq|`bg|;HHG)*!e-;8aVk42oMSV>GJU=z%w zg*IR7HdA7uPN;S`hbQEj37x&^d z3<_21D5NA~H7Zs&-~8c7VM+ExQ<_+pH#vq6k&`u0TbVUK|fFP~d2~ zam2o{9Cfe|Aw>n`$|j?NFtI`_E);9g??cH5C|vVbU+#R`YR9n5Se1exYjetYfLY{fkl31JFbCQGqY^Fv9p#aIPzz2#WVDRC_& zgW|S-`S!3{LRzc!emlrl9fw1;3uRSSP7;D;A;4uxmQ8SXPm@D=V^J=tbh&(1@PhVS&SOWc ziBHxFX|-2rf7VN!)}*2q$EJ1%r@(5#v@Xzb2ekA0~ zZkTmo1;lGP|1wSNgji4UZi?NccQx>L1r>XgY6M0AQIXg*&@QSRl`5APOct$DEH&_o zMpJdBdVS`4$s$zEN?1~5(vId+wrMZJ7d{%oRsXqsyC!GS*D%F&3CZ?-r!V8=cMtOe zxeE7O8t#61Pn3a6Ar@I~6)u47c92n7NkU6EZzO?J^I40}ff)ya#dU&b6Ok?Qf(t@} zC3#7w&(TyspL|P%iPJ947yU|@5tS2o>>>zOpqX{R1#AGRmD&ZMv#D1AI*sMolEY|> z#;L9Psj=FsQy?lj1CTt{oX^CN$|RgaLy6rkcvY4!aN}izk*r7KGPDGXB_n5ThiBQ# z1*rlW|HHUw$=Ga>#;j~Wp0!a2?YNCy?2R|yt4ACHpqoNUKbwOeqA3EFh`gvPNQt)$!fR1@OfeKwO|>i#HU)6*Fv`n6+te~@ zX#~DRz0~VY9fmYCEleJjORSPlD8sEu<49BXQ5;GRu2pBoK)(QSO!MxYUfpzYY8GdJB5I?xsxg)Tct z|5OicU*sW#VBQS)hqMq`#dh8pS)&2CqhF$Z;x{sH3xUgQf&X_k#nrONb)^G0UG?=6q`6;tx~*JmxI{m$yKBG;yqW|tlHTfEQvPVKbJrMb@&CeMcoo8O!(`lC_KJsXsvxGTTWLE;Kn2qxjlicbIwQnH)p`jQ(y~`+YOvGmLc&LE zFZ*&bYv7;LgDA?8Nyeo@xgvtDU00=r`+$O>ZNy7HQfxO<m2)ouUTR_3QjVrQd z>%rFap#EvF1<>F&>2~xqBhp8ur4PjwA#i@SS(GA%;^&E8%^+Dj!f9?jBKCX!i8?xy zaenn?-L`qtac4r!=if|zDFQLMJ zC^)nzQe_Gii4><;JfQ+b3ym5_NSsI|WJoUt8E!nu@uZ3)B3n|a|FVOFNrf#`y!7HS zknuDs)TvUd+GrurOBJnLtME8cqbk*@Hl`FM zD6j|$s{dqU-3r%>mm_P%ij}dW%9prsjY72{1F+!0gatnw*i|dc!Hf$#HXKyz7cY}5 zACd9cF6PFZ9m_aUnX>4)of)?P9XfOs&2B04)mlVz)fPe$_pM?>qf`_{E79ihSr zO7RwCOV3$%ltwkMloJ(RoS8Km{ z@s$c|3ir#2i9Ho0r0jXz2cEup$qRnBa9esy#~??;wN5zrxvcy$TEtZ(Cve>ZL9 z=4DH{zm)fTAAj9u*PgwegE(#lC?E(ggzZ|W{}6`kDzqWG9exYDhxmHvIKT5F(kwoF?dklKoV6%j^UvM=4o3B#OJc>?LMZ*6BQu@4??Vb z7MTK>3G=Ztuit{$f5MhrT~lGk0aSPY_C=<8;UAmKE$l!XzJ%r~S1U|j9EF>$Pioc z2C*iKtZgingPg`)X7Y8a3 zfz~-lT^Ulyx+L%}EkZzEvx{Bq$~Yh>|CTF7wzFJ))I*^1^yncp>YZZ5bQU00t& zSfAM+;U=>)srei*9fllCc{sb2q1*FCt;irwc z!yUC4!nfYl2#<)-BS?~Gq-Fh)|6(9&YBym5=4`YRTWrL1qd z>Eh>(`aAB)RiK5)L~O#kUO#S6iT|pB0Qjh4V=pZ z9@O+QyG_brlzY89im8$=|3k`kGznf?4UVabDMAs#8ntM`?JmSouP*btgY+8ePH~|n z0|PUvU!KiTUU1rAR;e|C2w`kK6P|Dbd{;98rGjfq%@?+|gAbOFR8>eTV-giWt}qQQ zCgXwFh6h~!!o)5+a7}Tx=E|w4pav`M7=Op99B3ZZaO$M2jj1D^lxP+|lOtk1rv;;X z-u7Ah$qs)?i{uZ9j&xc)9T*SV#e|4)p(l`Sh|qYVg=Bf6L%tnCl1LsFDb}|HBhB%W zmz|UF^ZQy{n{Y%y9PDK+NJ6n$`$?>I<)**W@P=*R?3`6V{wc476DlA$UIX zS@AqM8n{rEfeB%&|9&q`sRcTQIcELT?}~R$$^4R5fLVxP;7X}rrj4%pt#GJj+Lh2m zlfLd9)K>OtD3b7Cs5OXhd$j^oxG4EG$b!@C22yC z{Ovf&p{9(T|3l-U?{wMkJY-XzjdjS`)7^g*^1AJVAI)W_$WrV!x0fu?CKnWS2~k}_ zn_OkH&(=U%<|oVlDrv*OVkGyXo){i<4e8tq(Kf&ns@rrnr_UkNsj6HN;9pd_8Q7nQ(#50 zx~*2jR8RohdEl>ie%Jw^#52A!+YFn8#nvIRy-D?{S2m`}$~t$Vz2mK4^vg=T_Gj;- z?Svfp+@<|C7Q+o?*8an_3Q_17V=MP7({_!G%lkrp9K^`E5G}XKN7ja0< zwr0ko|9CAy5jRx>KT%yvu{aOGQ5tnjZ83RgaY@C3c|A2W2-JBRhC;8zbE20ThB8yQ z)?dAMUp62Vu-9p30x5{LdI5$f%On^v$6%gPb76CHsIg&+p>vH9U&dxrv%))v!WxhE zfiw14TLELk#2bmGVV~z$(PxE?WOWW`eOssy`1c<6_io#AckDra_JVfq2O;d&b_m5f z3dKGofZdaTEi)H2 zU?kgdb;u0d}b^h2#T)+e8;C@u`x3nv3dBTdWHpjX0n0?L^Lz_ z|4WDh6e{Q^vZ#Z5;b9S0Y6@{`m!@jEmtV5B6+4kOL%4)ou>+x3H1Bm65V04d_#0GE z15YPxHZ&(t(R`5gd{H5NS129b;cQ%JWP0Z~+IJA%M^VkPIrP^#a2Px0ms;hPe&g1D z;Rb(YSRw?n5MuW%_Sc2lcYjDUN9|(+UxkoRVMzQoT={m0+7U7>zypcbh%HeBH6Q}y z1d+_kO0{@;)ZdjkK+eX zc2`@>0+)B#b>WeR(IRk%=^m4_9$zAOXI3QQ0W0^GfLd_`EVevHp&gY)i6Wz8u(C0n zSSFPh9hVo1saX}U#*zZT14)&QrM56n8EZ^41;Jy1JvTs6d0!ZIYbw`rBS(wb(HPL^ zf|YViVq;4mHW+rIgLie5r72geOLpKct5tWD|bN~ zgLZ7ZVwT{Tmdt{E`ht$t5;=t_hWtdArN{ zg&9wQUnN+T5hepGhH=i3f~fZxE^q@b@DDT~5gnv*`t@KpkSI4`14yc*Ny?-*kX}Tp za($SjKH8*Jx};93aak%CMQ{U<;sQ4Cr8VH3MFW)#1VFmEVK+jfr$VOEq+o1bzpZ}V>ljy`B3Cn0WA;#X-81n zp@#q9c5MiEe|axaRG@Z9Ip`RlyXBS`HHb;l5Lr8P9o9Cg($;-%bh3*2b#yo$5hbAFGCK1ZFa6nC?lNWPVs0-BApNLD<6)qnRjArg zs^GB^B&A3?Q3NNTZ#;$qBX9yv+ec120vW+@I##u3$pJH^|4|y65-AC+94Jg{kz$x< zuRm!fMOi^lfw9)9qf1$~_Zp`8%B^bEHSG$ncgw9G=3!PvVD~z&cMGrG(WN)&i%811 z^xBIIL^B8*tbegM%8IZ}sW%NlK@$6L#L^`Tfw5tcnt+-($90k-Yea_nmbhb>c-S31 zs}T6fsRtsd3UZI7bE%msWqsMYfvIhtx*b1je~P&sqH0K@#1hXV5~@m|t-2A)qdc_g zN2l2x$uf1KL;`oZQ7W|*JcOEFtG%(AJ-}Lfr6xS~dZKNsR@(u$emgc{rM@4Dw|MKV zh*FgN+M_;CjFGx)4h`81IX?tEL&Q^j`{w|5tRIu-ofrG4~Yzu)G+{7U0#f z9m^eN@c1~q8)QQ(w7}aC?PC!U zT2f!Jv^mB&?Brb^`&|O(cLcK&ne?>?Jj9@=0xodG5*C}}8!1ex9p0M1^()0yN??FH z#a8^c;##;#npT`?uVhoLid)1)tQmgPyic9Ff-8^Koyx{64S?_quPB#3*b!PzD+ ztgEvm5UG=jE)DY;vF}xnUqfw01t3FA_W30+n0l*U*|Hh%Rqzm!B@S4R}%%oLZ%eidJv8)iW zTr~>Ow@eIjm0PE)Y|NO~#%(;okodGIBEg-k z6oE!>b<{f!AsrzN(osEEnSy!>%^iSy|JAyj%M-2D6^*z1d&|lRzQO#;Q@t4zgurVY z)f|}2o?FuIIn9uqvenFP*K8v4!Z{uc!Z+(6w2P@BAORu3mp7ZUt-Cq@sM6Pl((4?M z^A^;YTrm_85r(s&%U8y+TrTIT-~kX zYTCO@+BhiMVhq~1Ez)f*!JHh&1WCH}q>dRpMDM7NeJoJhfi8g^*b4#JfGxrt;+HxL zML0c}jGWkD$kV{<(;<31!!;4;+S%{v%%+I~MIxp-wb|!W9Z=2Q4p-KreZD*z+w;2G zNLt@itkACQ&JaD{^&8*!THC{n|Jwu3u_FycZ(YH0jos_mvVyrUdL6UReJ;(Nmw&z7 ze2v27Tq5OsyyC%b>z0m}vH~vcR zUDl*c+Wk%63a#2e&f59?tzpftVdK@coFW0PLGuF{1Pd-6^_wdURJHThh^C-bXv*G#=0#iQ{{2&`e%c zXa&~%>*MY#+I!>`LIv9LT>E1ZyXu`we4cDwnL~*U)ckCT3 zJD1uVvluSssngtp?S6$V|J^H`<{%Eka%|!eLF3&YQ-ZAJ}o#@R@#^V*E*^_a zhI`!Q3enAh%TQ?mv0HBAOz)0Ln6JL_>CBeo!5imFtf-pF=4AsB^P#&g z%{ztJA91uVK``g_|Dt?CqSJxxTkqu6?zY@9?OUDk7*F>5E$thx%MLxRUY{8uPwAJw zQ{Mh;S1#_s?KpDj(p}Ei?jGjwuBoLn?`3%AT!uO0ZaZN1!cVaj%G*a6ku%FfeI~D2 zEFSqv0Wq3s-VQ8Tlt`jnixO^s?H~VN6Cd`dJ@%(x_OFfh5iQHi$@U!&`ZzxFHYWGh zhr!(U$o5$~5Pp6qeDf9_0^ywD(ybrj*WulvcRy=SM|60idR#QYh01Ktdd~IO{`!yt z_N$Nj+n@T}@BQ~}#f>q6cDeT#te{}3)z*pMN@gAGw|m{^fRLW~(TZZwF3U<;2NMULbM(jcP3m|2tNO`AD!?$p_n=TDzOfexK%LxxeLN0laJy3}dYq#AG7m|B(U zRjXOC+StL>Yge#e#fBw2)@)g{|8}TVd)6&lw_4@?yFquWRvRwzLVenoFJGa7i4GQA znD9=QiD52QY0#zPm5@P_q&)IsWy}^WK9oq2182|<8)6n%T7+rSBt)oYz1nqa*so<* z;7}pL1PHiw=jI(kLI~gz2>$-fd-rh&|3(Om-CVYFhy+h#9$heW=z^X#Yp34b`*+HW z#VaNc|MR1a$czsgX20HjP`~m2%3rGS?tQuU;qHIipZ|aV0^~2hs_3$dz`N+1Z$ZD_ zbFe)K*Bfub@+w40BgVk%t_2M_(vG`@Kosq|5vwEVwCOm4?l~5ls{n-xDll$F-F^!$ z1cH3?4LKhFIiW=$S5yr(6irhxArd+3$TRFZbn?k3EtK-5e<)ljLM$H~YK0WIWKTgb z8I%e?GV=rQOaaqGbItw`EU+#&w_5 zQXqqv3-VFtXtRyS8FdV9I2~!!R5?e5gmkqI6Fqd)h)DRbB0({1DOHjBbd^t#@RT)A z|DaT;fu=5VC5X!vfU1*Ds75MtSgrPBi%n$JRP)#X-83-HtbUaiDq3f?mZ(>=g_Wg_ zOk(w0kxmsCRYXS>)w?3C`_xm`UW`%G2^@exUK@4HkvK|^^Ko5%i6qF#jYKV1U~|F6 z@S~6nPUx|PwS6_AnHIiw;+<+xVI~zgP{D>CUYOwp9aix2C#G5ew$72DC05yFTW0y? zu%LZ*<*81#xi5-yuC|43d!A5XperNv!+{Gvx3Wc1WS3vnB)v`3dFQp%H%yDmmp4wC zhBToOs3W-C?8sG!JD@WRx*&&rcB!WG)YI8oTX`;Fg&vl$`-dfr5aNXwy5wov|7nF) zIZl@ghxu>-orRNTstf|$=AGY;oTjuZSNm+B#~s%p5y4J%Y0%x3@#+cc{q5cz;Wchw z&_6Y@$P@!c(r6QDKYKCE5ni=Qwfnq@ckv{rcm*Sd7{YG5pD@A*9sWr{r<-q1nQ;US zw;plqVo#|cb{|ypLQC9?_M;U=u~Ds;cA9hurWWoW;zCe; zx2&~pMW|6uiUuMQf)Qk3>^l|ua;F&Jm9IiLVTt%G7?>Fh0dE^z0tcJ-x9GXxA0pI? zURLk|y&Q;oUjZ54T=>ElFzb3V%w7%4GB~Vgq=Ytb-1n#zJ|Id+f|k1w|Ju}NFa{>< zNt+9i*pyTvRz0MCEQA~3rD_0J$Wk^ufDz`7~MCTaeXT|^WJKheAoAr^698~*_) zf)J5UHMvl%E_lbB$N&dFzyS_A_{R+j;dwjx-U#==sdAIV+`Y?-1W4panT_C z`ybYpQ%f<1YIbKtR1(SN#gdd>u2Rp#zCN=p^mvypn8OdQmM)|{N=JQU>lpr$E|8~q&8PkcPA!hBM zBtS@2@ru1Hoo^0^x-K#lj0hDY?2>jQGs4nnAM&RgQRy%l$V8ub)FU7LSj`R!VFl28 zoDGV=gC5MF2Q!`N4CLuZujoJr<+Oqldiv8J@PI3Aac5ECnWmfaFe6qGr4OBAN~r!s zGW>LvD$R$vp@Hj_uWXVmsY6SO+7d>%RGkPyVAfq`3V#6vrfa&Up#;K`eN_TzN3r_R z#Edkm99u#UjDS+S=@grDBFIr(z=LxlZwWrN!Vh>z6&ggA1}ZcYS3vfIpZfF%PbjBO zbxPEu8dbD$X{13wxtAW^b18b&t7CdX)x>mbJa$b;T?56$|FI2}Aq9&Z z5|F?H{8tbzdU2v{B_n3yS~P}i)ibnBCTv|56cj|&S~Bpf5$Xn5A&Ar_KIDNCl%QBZ zE>5zO9o8dv>Qne~mb0GK!6iXETKpb0sop!S2n*uWrf3(Mj{6B-sZJVD27>3A#PD{87cv@hTw}3Rql_-EaHc9|1EYJc`h0s{E*9ZSz%kY5SC~4 z51H1@2zf)^40JHa@k*=88n4!t}<(u6q%u>PfHMU)~psYJbRhIfr zU0Q(<#`)~#=|HuMEa5q=fL`Rq@L7~4RwRXRZEP=rot)luxy|w>Zcl|EU$b= z>l!u|8(gR+&qkDe$5>6Q}Qa>v}<+Cz7K7}*tq%*Q7u z^NGbQ7Q~Zesjx%g_|MALUh=}H{zUU6nMmban)qp?8Yw1 z<8AV%j|*k-i;s|%bMAtY_w?oeP&u3u;`{ux{Nz6tD&LLInz zlQn4}NczAjv#byFK+*y}V%edk*dcif6T;{cg2Pq7!fYjnU^(VGl_CD_KP$6X}^qszk$Ixq@zD5 z`N8YDL7@|`>MOOA$+-d~Ig{JHg77^CR6eT^zLy)pvM`Fki>Le0Kt9C43#=?O8Nm^> zibwLm7J`f9Ye4*9q!J2?3}hsd|B=3*@VSe*L0(CLkZ~Re`3R&CDWebyJIaYOEU?Gp z6J%07f)F?-X{CQ+I;F$B0xCVIt1x0pIP<%jsBwS}^B?t-H8LBcu$vv!TMfzs!|)Kp zwR5J$@QKODE~0>#^~k=SP=NrHm{U77kN6d}P>OfEiV-@%a1*C*s)`2;w+PgM$Krvt z_zD?P7P;`lKIB6Ve2X0rDjSF)eB?bwBE-VOh!T`T{6ImZxC&C!v3Z-uTWJ9Rw3QQT z$dJ*2Jh`$SER4akli$HcWYiXb`!_%Nmd@dv%hM=>lSL9EKZSe3uFJY9Os*=FxLCu& zGLkyX^TLTR#z4u)^3aKp|Ji}37>Y#t$%cdv8?XWTIy9XSnV)naL42VVSW27u2X&+` zXLGjP8$RSoxuVQU&kDX505WXDN{|_+jJd=9d0j<;lK77l# zj7rZEszgjTq6|y3d^Ts(8@<_^L$kr6ki?_JL>=fO<52=32u#naJsEh&rhI`NxCya@ zHj#Ore-Ig+no9c0Oq;+-htaApL_32~x>rP_k)SyGX+qby#s47)&>Ie2Bb_Vyj4PbD z_mjzi>l_uc$&n~UezHgzPyrW^DIEYzA=n%JBcyVA&gUeVrd&>%>H%kS#+oRBL9;Qy z;?6%JP6e4x<+;jo|N5i3yBqK9&gKCpu5f`Hs2d3U!0tNFn&LfloC+GSf&2suw(L)} zjK{acOZFs-lIyYaJW%vff+tYWL36f6tPA^Wp_nR9uS72-u$!6Un-emK8X$rW^@|*+ zfglKi8mNI0sDT+9v<;$ALR%h4N`VwGPU8fM6aX0-o6jAv7#=7mzv|JLavqVHfk3-a z@0x)Xm;t{@2;tll+PaJ(gpwnKMS^2Zj$lFydo#~txY^t=i0h>oL4n+SNh+l?-fT7L z+7951k|muGn{WXan5iEiCpit7p0EMvgif|8EE%xT#_UlecmbZV2^A;;4N6Z#-JnF9 z50No11Z~tt|5Y-(2&bW3o;nQ63Y|N==>bT>PyG~&|MX8#&A_+h$Fk5VMs?H!&8!=X zq(vl%58SEeL{+q|Rasq6M^X#-gimuc)g`#l3w^mif~2d+&;8_zP<>edRY!S5ivsmA zjtw{X|7xry*qc_RimF%X?Hg4=b} zo>CqjXg6G~0bNyE9cbEW%2w_qSRpuqyr{&ZY_`WOPYuGGlZsa8#B>>L_$ylA;*w2N)7XT-aeNU9T zvGTlGpW>Sk+yR(H(ADBgoa(>ZCCQW}XztHv%rAe)X1c-N?CmTPYe-jewnh zkYB31TX>Nd2bjWtV9BfDTVI_Jo4DMk)nG)W2{7qg8@u82gw(o_RMOqft3+YkMJHAjT^op9R%Xjl9Z<2b zT~D@~-2H)6#*Z8D-32XWSNTl8VxCpD;x4YKYVP7|YBwL$=a>M(K-LJh6=%0K*O8Fh zt{IY9gJaU!B7E`E7m4TQsyME0jW7GcB@*DYrRr>f(E~nY(7eIq%;F;;>X{fPN$%0T zIp}RJf)@3zL*>rGWDrgsG*b3x_<}$K5#`b?Wt6fT#!gkAdf2jPWzNRHlD>i3)q!1} zU$XuoYes z6)esh=uXSd8?zLdro;gX*Ptg(*%#0l#*={(0GXqHP9zOzOl(Z(d{`jGM4Gx&X9Mu5 z#z|GtzHc#!Vg!$X+iE{nZBdGc<#9H+u(sc|Wfl*M{8YzEGVQBSOB#1+RSt`x6@KLWf2rOR4v^s0+oFQJ(@EJH0)&k`?>$e`nqRzUjGjG?_2 z=n|cR+!wHk6H3XioBlbng({>ux%9EeK#-i20oqEj0*uwaxNQ zbYP^6K3?nG(pQLAQb{Kd05k!Aeonul?_B^-K(N2ffgX_7H~;T09muZz&f*mSQd@}| zWz=RFfYI-=u|XqSi6$(tpf60kb@D7c`ZB~1e8Xdb%8f=Zz4MR8?jP412^@07N^x@k0cY(m8)!&z$F{v`$|xV`?kv(X?-Iqc z6%;^$7r68_7XlZcM*SOePlwJKz=&9SAfyKXr_JZ>vsQGv;%L7&dYqNtmp~ zH%7_&4ZSYCV?_TtS`zv6ZuF9`$&;rJ0*)h)C;=Tn{Bk0Kq|E`YwPh=2?oAI-B7ofR z&6QN2#GVI<nEHx3)ZsI>EVr$a|C%OlPkOMssb=vd8{PN`UyWWFWzTKa{-CvBHK6hB8|4II=__ z#feL1%rKE6#flUU|EW-MB885LKPvt(B7}#E8Y&)g)S=@f&66)4K3wraWlbY5I_6w4 zqsI@TG<|mb_wQi~6iuHxjS6+D)T&gkR#mDLs@ASvzk&@bcB@hpW6z#N!9gvFe{I#m zUCW^@UAK1Y;=POZ-v|*Sy!Is_LNMXMh6^J;thfS)3K1qifGjyO<;h(oguq;Rv*i(i z6(#}^O6xE6PeTJTWP?{b{DUA5J?vMIObOYrLxdCV(9jDF67<6i6mlrx4m&JJ-48;H zs1i>kqBx=uLfr764mR8XV}}viH{%X9;8=rvD;R;{5=vO1-iH&$SR{-uoMc5oRxqiA zj1?A0piVC+QP4pL9l?WqE(o|(3pY%$o?(NY}E@Mlfcm9WBAGXDhEsBn(tVEYmZ-v6D{UZCQ|G}E@Fw zQ_B^!&vHc@w1p8T7haqy+qYh&g*9wntGNZN;fXQk*shCHb{Vd*?#kC^s~%3Q;I z_o%ad3fJ79&keWeaXWf~3RTH~^$*?V@DD^kKv&dH)CsYbf!i5M6G!p#ZXSB-HQn9{ zI`~^Wzw;?d(hve?h%>>&8;BsoV%?yXf($lzl8ZK47_x>O@8GeW6=mOa#zQ~-;>jx4 zs4|Vn8xipG4Z>V9hch2}kdg#F5#);={-b*TfRR!XlAiM^foMm#fqaz0rH6n?OiR$g zKfr^6?6|Hx9AS`~v=^rgV*iIuIv8J3WalLr^eJ~_QWT$rVuW>_1W_!+&gg1Lx~qUr zEU=ME4!xqeWC1ZRXEDvDCRaJi5vEnIf*j;-g&7GjPFKA;qTvKbtlDHQh{)<3=Q7p9 zFXqsOVx)>lsDibXw4eq#7~T?~(}N!TBW)=m(?`@*lXlslcX|{Lcg)u=g&fa##j7B| zn75xFXeB}kG7$Bw7r=-4h+q?QpM)-Uz6NcKk{$CHyDoW1Kk`pvCVLXf>Z8f{NJt>d zo1c|PwgQ>Sh-Nmk0?q~!q;kQsVFWbS2raS%oh9%EjC9~XP{1@X2_XgN`p5~#(~(Zz zOKTn(&jw*w!WA%cT>mgcirFfd0y&b6ZC<+J7_*`ktboxgP+=Arv>c0YLevUty4bm}*e#vuEGIcD8ZSbXuqG5# zQwr=PgmQt$L?rsj1yhi_7!prjd)(6u{CE=Zw4^225o90@bOToMXCNhONC0E$Q~Y@- zA=o?Q52{B>_t^kRo;1h|WCA`L@Bjx(SRTG$1~c}!)F3j@Bv(;3yqYaReybdU5?*G6 zA-Qj632Es-fCMCi^Zon4i%{I5bC5SnZX6gL($Jpsw|=HA#5ZiwJ$pKE~Tx@S2TC3ue`P^ z^_=ZtlnARRa^_b5d;o4GGez3g(~80}mJj2}&`^DfF0%=XS|sY+bAmRyO#xv}QeYGq z2FfMF%Nm(##uI|2pea1^P7z$7(({t%AAJtpv!Q;&*+FY}p}s z&{M9;0AnG0!CYr_v=5zReiX54j~bj+ZauZD6_d#gE;&}S>OhnDGZ#^C226r%=sy6Y z&x3^E%X=XNM|G6}fh!EkWHO3sDg}?~PQn9tVdsrlyUBPOqT{2Kt-3!(j-GHV-M3jQ zD$iZ=ZvXU#Tqh^=xPAj1ScFSZ+Tydfn^B6bb_-A~OYX|Q`irxo+#1!A#@3uN2(WkQ1rp zPJ4#GOCMFJ11stPV{}TT4y>vFGcZ)8THmskRb(03YJ?*!6Pp#}!f_gPT4TA^q3H~+ za!t^G?21=UQiQKMsw-fDw;l?fr?B!O$zzejpv8LDv8sz~nkcKn%VH<9knJo^;w&xZ z;t+JD1$$hA*0^Z)TbaeYD%%EBiu~NImTl!L;1<-1SS;>B6{O%1*q)1M?QTck1mCdsE=vm%xXn@};k&GX%({bvn za;u4~Pl-=Fv=^wjJ}s7Do;`vB8S@T2>$;bXaV&!&*M!Fp@$oi;+=7mvohC&VPengF z@Vlo4%Ei<>YxxaCv`~57?oL&fyNBo6bcz{crL(m_Tp-= zzy2ezenfT)lzq|dt4^_ul{RuFLT&6!wz7cQo#zX+ZN_e105(c7FPwU+ZH)g7crL?VVR(fcGfG?qOQRuv{d)+*1jd z#uQjrB^VA6&6OxYijdHqkWA7A9s3B4Ej`^p^g#A4-3xTsFOA_vtW5D#-T%yOh+nZ- z0C63ReI3Y|huGC051L)v*@Sqo9of7K+*y-NpvicoV8JQbbH&AydCFke1;8<&vg8Jp zv4#eUK;hL}WN5|Wf!RPoV6a$@Zg^n7rI}l#7P+-q2~JcZYTlfwS0TQD3MADFJ53s5zB{fk{LzHA z$X~QITR&=uWLcYK@t?MN2WJ7GB2Eh{-o|L9QwW~h2TmTcRElYYBLA>RpyAnyR)oL> z_ErXF~j^}r3_ z;V-7wdYO+9zE{XOn!g-jBo&NSFk>|CmlOV%jl|K+>C_Z*%+VZ;HhK&<&OkR#*d&Rg zHX1?C<;>H)(F~ZOkuaUp1qp~r&j7ihxtJInA`J$;KnW1Vi+LT`<>3m9T?gG5-JM+_ z{(#!GKp+CyAX*n<&K)8$B&4{c>nx&kRUW9AVnv==r5MpjE=FVI(b9Y-Dd?h7;uq2HqPc;*C}e z4(3GODY{c6%0*=^ncO59Op;T1G^cmOiP*JA4@eA7$iUd7L{srdoxO_>s+3Wp1RxdT zcq}D;&;Si!B^)h8zgTCCoE}w5rOI68fXT!cj;ES-)&KMf1@{@mM6BmZpcRquUW^pj z2*qWCuq7k$%YNP^dd3MZ(xnY>Kwqv$zKDl%fM|}Q8(SDxiBgIs7EX#9h9(A7W|U?KFdit%s9~rk5fPV4z9uS8 zWT^5eBTh<&=B9WQ)7eSrVYLelV#fdpr@P?Jq1*ufAt!nKr<)Mil`3hL+DCL^rF*Q{ zeB9|z5!g^Qh<0iccM{)svgw+xX?dP!oK{tJ)F~{b9DMG8eC`i@D$-)XBYvKbe(FT8 zQO&htm4GTo!p@m;Qip=#gb0z4gOZ00CM#yS5dUOdC=GdPLxSq45}a0$;IovfYE2|1 zQlyFM>T059ims?WwWvovQN4+zi~>f=?&>7ssNOYVu!0d)cm=Tr2k#V9Kpwr}SZc@u-$P;qanQBa$x@)_l?Iy)* z)1Z&Jn5l#?W1iYf(d|c{BFLYL&513Txv-W zY|q*zbZso$(56#dNDQfnc5sJp>Hv8t)&C62g#O8$)W(a!+C;d@2YEcF!mLL@bVauo z$hh7>xn^glS*5yC%Qje zrsN5?(;+`(3j3_a=I)4;$nf+ov*N@I`!4amlnz@fqGjuSFmIOL-VhH23xz9zP_Om+ z2)cGi0d;5bP4P01qYw<$71yvr{EyAq>Ah+N`eqMW8P9|4Ytz7QfXJ@|wQ=jTPP`N& zN$g>s73qQ!aCFGd0B_+6W!uFfFa~KXDsL#}-d)H#%g836S+Lv5?!{}BMkXhbtK3$+ zY4AUAu*}A2CU=Dhr^bzzF#oE$ZjWB3Wlq;~`KUUfGUie)IDHfi!mvV!#|&e!9ra@l zODXSAZLqn3OC;Ct+}8_5KDG~8wtA_Z|oZ*+D?u(mg?K%!Kf`TRggoIq{c zHZfKZqw-5#!3S2d$NzrnL_=KTHRhL6h>XMFmxnxv{$!6bpY3zkTJ?@lIYttLPK^3o z=UQRJ3|u#Ur5~J7cl7~@N|cOFn0L^;@Drc}(cA#l+=rmFM^>RWYp-?+@$gAVRT~Mi zk`e9C?V{~ilRQ)Cj&Xnjf3$E^CS~hJsg7s_GqST(ut8Tq3q(Ld%UdPmiUs;pS47dw zy6RwSN@VB7WbbTcH%n%#Fe0*`>8Z=p_CyUgQ)$=OWu-tFMMX>eM2?@gd7oaOF4#&8 zH;&*O!tOR*7GqxRM;1!A$2dWgI{^<60S|ETg=A-PPe_UF>3&2pbaOe}#uA)Nb={T> zFA*3G{DYa(K>x{XH&c(&hRNrWoMRT2w~l+vS>89%um~+SM13ShN!<5D2wKV1x9J(d zRdHNR3_%Z=&Q!F3HJJpDeTy}5laL|i3OEId3!sTxHiKLA-gSCFH_H{>MPa+jXl@zI zBDN*h>gQ(UV|Ox{*{Fyo%gAavrOa+IVY;KN_UOHGXxFg+qLAXwcnjf%ny7$rv`3*U zJIo||pLGYKsg6`V!3^j&P0^-rC(xCkwJ-Gm63>irhYas2H-64%hB&uTdvB2-Nx54I zb(o0iyfU1WOMV$pcz0i%Kacpx`x6xUdUINrw zG=p3Y!Q9%1yi_%Lyjf8s046$6FoG| zTA4&6)W`!-W_~N&9NRYt z&*=cB@sf$91lV68f}TVXpnyo&_<1<`OEFV1 zO1fP8;dfkm$Md{LhrT23DClHnYnZAQX^Os$dL}E8sWT1-&+4k5ysLMG&5nhv|8u%M zl>eKV@)t!43MwM5UwXGiynwhs5hVQ^QERZj@^gfXxUlx6M1>3pW{p9<1ZjU8k<|;d zPVI3-Z2Pj+>D3bmfzn`a`u&5*hvMDE^UX`J>raZ(zWK1s5iKxI&8v75^Yi zX#Ci5ga%9MxC;U5M81&)Lf%onWYuc<`)pu9BP5WA{>$S7-*0y~cFIJyc zd1Lk6J8H*{Eja#jp~A(Dr7L?ZnXw|p@D@dT^f1x`M|K=6dk}>VRmHy)I+kc}iSm3( zl-=!0B_0`OvX*zAlAE<9Uf?JYXN+Do)RM-#LH6e@^7vqT@GjIymT!)z^?@I({cZ5Q4W3mVA66i=ogm{aBL)S7Mn zXEsvnnhn&R`^0P0pgF~qXv7p_OwrD?dNhQBI=d`0NfY&~=%OhVTIkw*-kP1*u-J&_qEnO1TzBQpyA=MZYQOTbLl#+u*?TX(`vj*izx-YhBHwT& zvO)+0ztSjN9>x{OLv!oRa6=v5-8|mTMbyd$bbHJYUl=diw?>T$!f{|5G%^^#(wkgD z2_brzA-^IA&+oYvO7hRYWG#NE?G;K;ValkG=O|Y0wB%BT=D`%Rg}BWmE={wwcQfp< zpz0n@uSey8Yfx<)dgy`#U7zSe4^0{Z%O2fovdXlQI{r$lX8&K%(zf!;Q$H&oUF0I0 zQGpMEx#>+o$kxEJ6(t25GJ+5$SV0O>=p!E4PX%*j!6c!qR@1TF$|zVu3tI38LP+5X zRoKE6p5zEN2!ahVD4b}8LGt3(&dmFC9;qSN(d}F_=kshu%jn1 z5g8^}PJEYN>&Q>Jdm5hS9nn4X!h{%%}MLfPEp$Bgz zG6#N=O3 zh3Rx*3sEwKfCT}Y9U0twYM_EY?hpw>Fk>1O($5tY$Z=k=ff80^MkFi&2|p-;7Fl4p5M5GCk9a$|`Q4JkxWi5&ExF_IAu ztO=8N2J)sl>W>mA))E=%paf94X_qcy$R%8729A`05OxH_lfIw?V@g3uR&v4@q~LAg zbmsQ9@;y=-Gce#ork>hDR`spYEpy_OR(#o3(Eqp(QIK%}1U3UT3D6Ih_k$m$Eag_e zZt8y{&>At(N$fK+q_{IU7QF zTDx`$l;ngF(>^X zKQ!4GP7MOd>$Gi>HdGK(S5iBoq~It@y3%De(n*&=wwcU~(_(SPK=7S%XQ^DxS$$R; zS87F5fA#Auk;WOk+OHstdcZCrLp2RoE&rGR9Bf((drY#9HJJ?l>P*7&*vCQ#$I}Xv zlCDZUY(l5Up#39gv$`dZ4a5aBa6y=u{6{A@8Ol$VGL-EG&p?9rD=_hvxBm4njePlE zE3l71U0~S_of*s;T^$b;q>%&-Y>spMkVUnK(Jl%%M+QL<4Z?VX8~xeOT^9791r25} zd)FYbCES_Av=c&F)?6vDPkJfsNMYGc2i2(#q`$lZDNO~v5c3s|iCm-|7iGxClPZs& zEG+TZ%_BB$U{`7ORj-K^v3IfyY$&`+Q)L(~zZ?x*_o@}Ue)z6>l@wov?N-#}#eZe7 zORtNW>zv7WnG5s@17#gE&}I-Ul>dGTnk@Y?a2p3Xm3CFy*4=Iwd|SOr9o#?a(=B@& z$1A-3N)4XnEqu3{qQVV$6bs_q;Sxln8Qr46pF6qb4i_w1+_Js5tZ49FJS0>8BcpLx z&l*%34hMyv5K;S%og2g6WK>V>y?=}62T4(%P5s87gAcAEfsF@ zoUqo{W`~Bua)rQLk)6v%{e#4v>E+Sc_iQ;$d+09SwY9OGZK^Of=QoC6yhGmDj%)>+ z=JvP>$lms{>+Xj0f)>B|J@G8kCoFWY!F`YzXXX|hjx_j(;3?WV1i_iP3?EU$y@>dO z<5{>9$N1!L*kth5vmN1ga|0A=V?e@tZZ;OXS?-b_}y~hj|z1Ihe19y1g3om%W%lYsK7xOEVE~t%9EG*gzB506LmX1bhh%dzI=O1dRF-&at`Uk^QEP$LZ>&hxE zS_8325Nz0@EI<(ZO#iPZ8t@6v?JI7I^q{c(G6>6D=05b!?!F7}+>h?=L%HOL;NlGM z>@Uv9P+;^gM-;CA6p!&9BmfCwbp|j;B+mfza6XzWEUeH9oiKy2!Vfd33ek(y(gd7N zPxZde0~ZVl6KH(4PSIz(NLniP&^-__U&alC2<&Pk%CzXaox^_+t4?5fi;) zfX-qP59kr;L}N5YEEbUoui^>^Q5SO&3qitR4p0vb5RSxR@$AqT;}98-Q7q_B&Q>ZI zfsyYXhK6>L8hNoAMavd#EEZicvAPGsh%mACgaySBH~a!HGOPy;Bk7XH2LGWGi;o?r zjufj-`RIhj#{aPr8HlXn;!d`)du|aRf8!dhksx;w8lO?oY$F*L@)#RZ&Em)mwZcOV zk|J+tATP2YLoXXaa2sKd*Z$FKBysj8Z0O7a2(RWG*(x1HV-rd29sl7IBW15faV0?m zeNb_jUa2J63LJy(+K`X~Vs8ZDWZX6~X6P*=F;Xeh3n44=;?S=BxP>97(jlvo4j~fJ z*sm$KQgD*eE0=Pp0+J(lW8APUC{6I^BrN)Fk88++`E(B*=TRMLkR3fSuWs<^qK*gU z@-W(>9&a*$bh0gZ(g^#}ACs{497`;n2`seOS`vR=GA5NxQI1bG3quvX;v~c3 z9*0mT?S%Gx?l8lK=NgeT%jPkg6D%e3GX=*h1Y*k^GAxua;*hZbqZ2yy&^f=88W%I{ zcCIXs6KuYbAH#74cTz0g(l6suHj@tcO3W@n%pGx1D|Trwck>+U@hf^$EP}HY*(xM& z%{;+IH=IH|852Ak)F8W)J1x^7sxmB+u|kaz54lrA6-_idG$WVulT4HPJTf&w(oSH{ zfJSmI@R1}<@)F$wKKU{*h;6PMKr@`~0oqX%jZQ`h<0fBlECiH2iO{f&^FUP-M48h= zm;baNArwL>E;$0~D=1E2veOR3f=ZujJDpTRe=#H+6ihd7K@m&@m5}<*(o7L3`iPS? z3(GBm)Er}wKiAR2>Jt?2GcRjtKYNrkt_FQ_k}%zrK#MR>4D(1!DM>$xNf(tDH#9o4 zlo;*JK`t~7%c9{jluNr4GC?y;JC*DbwQOQ>d~l6WpD$2v4>v3&Mr)EbZ**z!vmkEM zD{_-2`7~4fvs6q~HNFv<4%KF|qAbVMH$;#7%#Bfxl_?!HQ=c;8?95%#Fb&&fS(nvQ ztJM#yBAmbuRLitHeN|4-6Fr5~Pq4;Tk+}KH*|F_BL7kP zM%7zQ1ypASS^Jgzloep(E{;xQGb6I#pfxK6YFancUmLdU_Eq&%Gd9A?M1c;m2Gmbp z)Gy0*HaXyZmhDxaE>`bSuOdY^ITl_63nznc2)8EJ7V9icX|Y0SIrA;OkkVmAt3wx- zXXnW)m@#4dE@6ST4+FMKbJkibO;|zcNYV5JuZ>=Xu9e`FN8gnM+y`Chb7bxFC3Da* zwnFNxmN!*aUYl>|O7&hx zc1{F$O#l~l&5v$Zw{Kf_byF91<7sIVj4Qgel%_9ifUZ#0(^Oq>WmOhs5#wBIP+dbd zN68{=gO@Z;QkbNzW$QI0)7DT)*EVJsvi=r(J%V+&*LAy>VPhA3waR*BhV{}^VyE|J zR&#ghl}>)QYEf2lKQ=dww;eP0Yd05V{}kF*?0I|UW&JT`W7bcs4=hqeK^L*c;tglR z_c3G3OSu<ejX~An#BUp$fm^(K$d$ZSc6aVyvPsLtS6m)}A zt>kosMIe4D*H!WIcuzPiHiNG!z>8aWimfgc0n2$=loeU<^WX^>vhzxHo+Gh+%7p z=a`721&;3+8+RCkYnOo6xHiJIO{La0V0elL18cR`D`XW@&W&0>b!IgpeG2 zO_ZWH#{9T+Pt%PB5s&YfjzhVQ=Od0wIgmOTILcR(Yom#w7j4ZL>r(Y33wcH-_lmv3 zHZd10@@E7f8FJy(Jht-sunIlFSnnU@Mn|Ybnq)d<5Hr7&H zTeB?47zS50c(JxD6uE0d5p1ajlBYPu#28Rfbw!IA`dm*`bN^UdtJ#yC*_7`CBt)5? z>lUBy7?pYWfXx@%J`xh6*Tr6WNXr5+Rg#vgxGZwnKDW4wzxbE?6F>#4Q(~AW%~&wc zm`z!!>ymTE>=~4%d77hHrHvM)bCz38I+^)6rm=Y}z*WNDnVU~hf4^CTFIt?*f}AZk zELix9!AKzJhc$cmpk*h~Kt6Lh6>*Ik}8nB^}uN(G_^B7_? zxT~`{m3oyN$J#gLm5?v`FMfI~f?8xvHb2q1s9iXOJO39r;aQ|(85~6tuS;|rv)W?@ z+lTd8djs3Gf$^&UR;V-xrcaXu4O*FMj~`KB5=qjr&Eh6$IdW}zQour@@06lX-~_x_ zvIV7P#5(JE#+83EvFoIhb(lC}TeaiqwY^ijzq^L8RZYC=uw|O0s~cxpIR$ZAP}}!4 zecGZ2!!w|6oJqEvzoIi#pqC@Lxdp>!pu5__T6zyxtl-2vQMnJdTfyb2yD1O6A6yY@ z+iVUKw@qa=14Fk#yG7|lV}-jgC?y9Y+Hw^+xtAM^`&+)p7_M0smWz~4|97$Sngp*~ zrY&&67ren87{VW1!nF;(6&q?h_@-MNih+h|oB!LbVJ}#ern2o@sJ~(d_1lX*JjGwQ zY@L^q&lYN%I&4~CO4=5|!D7d6oWZLaZ*9*Pd$;_0YVp&0G)Hjm%rR$Gg?XfBY-f zQkxsQy}Nm*$5_ynoW6nD$uE1T|3S+68_%t-dC3C6XE;UK7CA{b%zGHpuUgW9k==6r zlhu6IWK4k1_hP|XMTwllk9yQ$Q_n^GvPpcGJ;TINoHvo0qdz;#O;s&N_aAGlEV_}w zf;CCWlYlEdwsU-*T;*jz$k#16tG#um)&F$cgWR`2{Y_VvT&Z2Ym%P5Y_Q~;E)%QD4 zHkNZQ%(D$W+lTO`X(c@|$^wkSFrl1IR;L*{m3T41SkUumf1a%9d z2$0JI%`V&|#J1Vo7VCM<8BFMtFz7`RV^76WVpDkof3ulA#QA*0bs5Slnzj)OWC}*2 zHf;Q)DWr3fE z)e;IWWSA6=nE^$RT|69yk&`v?)ssUi)u@#WFnZ_`n7|%Hq}rzQ$)*~8puU%>L*O~oo~h%dTHdOu z{xiZq5R_)!0}@F`U1+h6FhX|~sHa|ctOl#KmGQdy>EMgO3tLKPcf7T`?~qF@6|-mX-lO)OGWr;Jj;1y)d+-4#^} zW$9&7NZv|Sk^fi)u}H6+tt};|j}W)yf`&=C;6hP1r~qUUPQoN2UH{miAqU~AP_AN8 z-N1ngXrXxIT{60BAyF#0pygU7Ph5n}DTVy5O=y`6;SM_(Z1O`+>1Cx#MJGig%uyK} zbBZ?MRD{4v-39YW2i3c-y+FOmkzFPgY?BH{ze$$GcTstS5H(JXnMXVsL{LRijV)<_ zRsPwgywe6Ac(V>N>ujiq%Vw#s#i9zHu#gX%Tm>j_7oBz0*@~TW+jR#Xc)dn0`f{%p zR(fd3Ca(IkoW91X;IIcCV3uOb$W(!d9qcZQFbW|M4|m7JkPK6#+mH)YY)Cg#K_ZnB zNkwY-w*O3b6$mAo0m4;QRV@C*mq16wsU!46nI*$mMhTgbhy~fuR8a%I3Gs|Q+7P4* zDy+;y6*jnlB|`wa+Ek))mnvk;fAYFPMzEr?r)3B$F`<%Gog&ocRKW) zf&LS_&p4=!6X8_rSjU0Yh3ZnDJC*F6O709^&TTJg#Sy^hG>2pl{CY0hOl zgTSPC1#({YcrX~pAf_=1;eqd}<~{@Qa)Ui0OH2wxvDQFOm_*?q3KR&w;t^#B4tbwr znpqdWV2>+0v%$*#fiaDhg-RZ)+L}~Ul%ik+D`;V7l!WA#RC=W-U%DX=1u_to*e`|l zlA#c+*S&w-zzby=%8F1VmZI>8VA|tl@eFp#vfPqm^a|2IGjuhyR3%9~M9C|!Da^M? zZA)c~2?{_smXf&ZFii;~MK-$3f$B&@#;i)-5EZF{pv9M7`3i)JNwgwVAtcVkCI6C? zMv`}Z<&^_sV<$C5nyHpcjZzv1H_C8;XPSuQk)%-nTClbz0SCy!ty z>sWvDkV+zJB3sRCR$tf2s#+B^4Pj={>@+Tt0F5IgkqJ^-U__L_5<)GQ!VNU@51m1( zsd^y+j8;+*YXOdh9PCO2Z4#4kiL84;ao-e*_7?F0Or>`Tk_T55Sr%o8Ud4N1Q-sh> z;;q(|1H@;_Fyexcl@W~^@@7xG!c2amOGZwSi4BI*(WNNNLS+Go$g)JEJDpO1DLKN5 zY+^s8;H9G|(U6XQI)x4qF{&&q?LUx|A{b%wA4WW1I%Px_r4g?rcgau~%l}J5tx3gT zP>nC#GUTN8!IEp55>$6z8KZ=0sAUwo$)PyF!jiBFCNv7_n8)>DF0`WW{iCSPUQ z3KhRBGNdRaL-;cpgAK|*G~;BkWZ4%76j;KojHL<)%^%AESQB3qv#vHvddpiIW?-eC-g zzaSx)Vj)|KRtOvtFe*iZ@w16QZg^h}g5`z*j1WhNrx42M&|6$9hD_W#txAnaVU?9ex~HFv?Gxt8$8Js_f>wL9Psz3Mk22J_s9DkyUM(TXb(b(SFYHttC3SLaAC-aTT@#u zpYtOp5vCGl%cBA%C2sfRT{Q1@HE-QzqFZT7)yO%8n?kUPF70n^St#nIthNRxSWEJh z>ywaK#Vq;L)=spz174Qtc^bL_S>&A-gQ*CcGr`CXi((*$F#i|o=1WnkU6M{JAw<-M zYMb48w?po-SDpA;pA232mIvG9B0Q)Wj8xzup1%u8Z%bZEbV$Q@@r5al@#TyRWaq1m znMNdoWk(jXn7s7OY6o%G%{kzLRMH(#1hF4$83L23dBsTu5=)@q_U?)-w)Z@R;~QNJ zV;DnORDnDA#f_uz>W_c|rjhs|F*jsg8S6W|ntqbKYGnR!{Q2|&`6jVSa@e(Oc)V0v zg}f{y)V#8W2O=?t2ihPscZ48o1{py`H1>mD^Clt>1t(>f_OavBgZBp zKjmpfpmsyj5JN#)U_pV^@>uPI74owsaiel8vods36aR1lUJ#OLMX-Myvot(WHK(*M zEFoZ_M>HZ;7FUx?9HeSN!V_>2Lb_vYdjW1XQ5C*(PmLxc#&#nfgCT0SZvnDe1fxJV zP;5IRQWS%4xa3qHV>M0#IBw!iA7*;GcQre*ZL6gtS(kO3*IfniHlvYV#*>0!M-XwS z0`|is+O}^UAxv{YZ#3sS1c7{OB#2fu8vUkK9fyATp>d8ReSgF&60vX!*KnpGWD#db zpwU(t#~Zw2iGJi7#6oc9=N^(+8|v45_tAcW(=>(>APqP^Y{(HL(@{v_E=`9J#0P+3 zBo=UTZyqsB2Ll(iRxKT6FZQ!#z=aa+rgtgEFaJts7(=KO0fRQQM|uCyUnqcub6AA2 zX9Hef7AwSAV}g2;1|o6e5@dlmJ*P%(C2!Hp!56=+wDEJ02Ws1-GG zTln%WM>0_jqai7Acq(CBTZlF_2F`T0IC}oaYzMMkjQl61c-6 zY4l|cLJ~nZHDnkw5Rnszb#rsmFQmsH4533l^%674jKcSgVT430g=dB$i=E_rk=Su~ zREe`8e!_x@4^e#ycYWChivQq=pRq`pSbb1=apd=X=z%({xRmMV5Rlk>NI5Mk7ef5? zfPaE759k(QW)cR%0U)-2S-}z3vNv_NDE}zn7y?5@KbKT_0}-zTZ`I-;_0K^$9NE3gUCfijZWzixD<7re;btm^i zaFH=6!)rnaU~lq`4(Spw@@Wc~6cLD6n`J^|;Wcw{KgD$+Hh?y#l@eOGGBBbtH6vR- ziGyAto36Je1L+q~r57<25~M+N;^b`~qZ2E&5#&}pdLu4;fi6-(DUGKPZ&`?oHE+Np zdo`pN!6#K~89VZURjmkppP?R};VY&%S6#Vq4d-y6p_SSfiku@6RGFaT=SUfMSEgc? z1X>@X5ppp0pVERY19cdWWp`z#L;oqN5I+PkGEo&i6_3~jN}{A?h&Z2R0wW0MO1%?* zDu+`#^c7swJSHleT%kP%Qa(;X5}w9Pll4lpRXk9tBSmr%R-pp#I1{F6nmy5H-*h~h z_oML=6bzvvV_GLn>N^;La$eD-7&3V&F;Z_sdb6`4C-sqF#5-D}r(|J4I8uOG25v=y zAx?1v;shiZ$x$^k6amvbdUs9WBa#T1Cww6?fY*W)k)lo^Jzz12_62MRfsV4LJRH(l zQdCsC_gXnxD7MptsgyTfqGIuNl(DmXBnOLgG@ycGq0&c{6mWg95*iVjmD~p!T=@{1 z_?1XTes)Ec8#L;_K3aFRv>G$ut=qCZCxDwi)0+eT7Ga?rYzp+RtJ%d37Ql@6ha3^xG|`WX<4 zm7XDrQ<-qex?`?#EdS`yte|mz99kP}6lJhjt)ntLx~3BaqmFxlmy#h9i$Y#?qA5H@ z84g3aCI@aH(Lo}iZTJE;kg0MZV-Q=G8Gg8hws}1Gk~Jo&PLq)%SQNVr`!qLlf)%0^ zcgmgd85p`7G9pD@{^LJU!C`%YO|%w|@{<$}Q84o=HNqJcbTSjnTNuQlu$89LE#j%ZboNCI!HEYHeSnS!7V%(syNx19KJiS!V|`WXy2mcBZ-9V}PTS7QT; ztA0hojab8EJiCt^$&ftBVkg9wJj9or$(X#!f1x!e$;qIs$)c=|l3dD^e9ETWzXN=$ z`!Q9DJRAmGmWdNBkMop;EG$jt5D~n=!itqz`574ew!UgCw=79t1-O=k$O&vXw#vxP z+*7C=&Ht$k$&lGIqkPSwoXyz$7h}S8+pNvt%oWl+&eJ@#&)gqvOtyyu8v+V_Th&#) zQCGz*I(JKzdyH1a`VW76w-omegUrD5EIALcz)q&jdKJrr+sfzMV(?oSS7ntDGn%yp|&;8OirmhEJIglal(ccjk(0~*tcg}R!L^dl z!0dhhpuxoK(qt8uMmCmrmC}O?a0~sPrFz32-O*&+of_TL82!{v9o10X!%1D$sT{v* zT+~)3t*xO~bF9+R!qb0L&k5%oInBpvMZs*<&;RTjVjW37?J5N=)CVoXS}oFLtkhP0 z%KuX>)qdUAfc@8gt=EKo%Io{lcMV6*r(_6i&~)4%Fdfj5;~7*b*TD)J!}`mVjng_U z&u@*(@rgD*vZn{Ef&(M zo!jK?o>NTQ=q=moo!;Qw&>)T5g`LLYo!BMaMzO4vXF1%t0n@eI(#2eg*R4moyl|FH z(-qvup%KhEJ;)6H*~T0h#XZ-u9El=)(%=m{ic;PhzSQg8;q2|rC2bi763o-K;`>8m!Z4gU=Sc&w0$&Gd{>L-bbFX9;?XW%5u^buFw~LDfbJ_ z@J-^h8{$s>;ZWY!OFrcuedMw8%5((6`i&_~=HCvk95Bt`)6E!H31q}-!8e`3Vm{2C z-Q&h_V?e%f++EsmOyr1dO2$aYdfaiJl+s?a+Mw>Rd+X zvM%Vfo+q&W>ZQ@@tBxu7?VH@dYH#X_YLD@S_;AC##L1xpNt>(vGeg8X6?5S8} zVoB|u0qo11>La}C1-zxZedtO(>*8MPdi!5*QI5^b*f%<{TLg&(SrHlxO?ZavbmRe9Xt)!1dl7_x|jc-iiDU-8nAZ0T0kD zKkaHO=R&?Z-tFrOpY-TlDXzZrRh{d=CG>DV^gWW~IM4PSjrQSiPZX!d{7A zZyX?h>>{u1C2txE{_LG?$I>2FPd^b6zTIQLENNNcrBUDfK^Y5e_eU?yav%2{-uaw= zxoXVwc#j_yjvN3%K)%0(qtYAi^e^u?;W6oOrTA-p_0Ii?njYN%Px}rR^*s*L(Q@!K zR`!Zq8mew7HvG(@zx{Ka>E`u-upu#Ek4{_dI5<$WvZ9)DvgKjVep z%Vw_Gk&*c0zrl4HiUrP+>xb z3mrCuIPl-U7BVJQ#3&={DQB)~$0IEV>$}P1-bV*N!-`B}?ABefI|bTX^u1 z|85`0ja+%{oCRG!&kPzm(bCnGdS05bxq`HGJLJ9wuqcAxOVM6Jm;Wi|W zLk~LyQMd|6ywJkeVv;aL6*E)tK?bWcP`ellBx*pP!16Cg$tvKn0?F_LGC#QV;wvz~ zQ?8xfQ?ssYDXT6mvIga(6puuf4&H4aWw<=m+#84g;r)iz%Z?k1y9J+)R+Z^acSJUQi6Qv{8&G*~|) z&9O%x+j2D7y!IkWJ_(K#Y$(DE`-jlFdMZmaNr{!ryGsA3G^$EotrU$rErmj@J1=t` zwN_f=RJDbIV5QepdsS*kD|h!rm0f>V%n~hguj9_w7+d?6TB){W7&7#f1(H4Yki^MZ zqUyV}QET!0D!hh2meQ*m1JtV1aq&bM#(!6S4z_psh52Qg?(IJ@J`ak z1)4^!gvALw96@flW3C|HnAxE$#tBhrm8_QOCKo%JTdgsR&}5T+PT4e`$BxZqoX^hL z-FiPnyX~~!o|A03!DfoBpf{Zk+^0O=8p@m=-q>10hmv|CsD;A#zQFHNdRU~nP59f) zyuSOYu$z)QbEDkm9B!R=_Ple^7t*|R7JY{5XUhNiOwGoLj^_LENta%Hai@hk{GY;u zns&+B<@!5o*#q@fSZY&Sz4FvA=hAfNdm26Z&>iAgdh4fuK6{?Pev#nh^@OfcqaE-2 z&zyb_d~l(5&mE}5HMTl0oaP$7evHn7 zm6^FepYklp3SJ=4cXEWD`^2X|>G@1=(lZ4scqlp-I!$k) z6P;^9<3#-TFEjEIXwYFJ`D{6v#>xM(X+?Ua?(E1rs;N>v!4v5z{qvJtmTZ?(?BAVo z)uM(J)2GJ#=}#>LqJKg&n;KDPQZ1@frdo7W2x&o6rMgtAs`II=O36Ys;8Z*R3B2+ z)utA;4`J(CUBZyqwlyQLEeUQp@{or{RGGS+tyqIA+jA-tB%oD6Y>^wYK zDYwS_wQ;gLq99{TYPC83q>lg5x?@YXd#%7qR;K@{tS+BoFv@{uJ78m1x-R07&(_zN z7xIm5j|x}R_Sdz`Y=}}#^54@o#3Tm(2!chT;EgcYBM!z$L&};006XNs7EUmR-O5ap z*!RK$v9C~R^-GrJ3A3zA4HRp6Ua=T!kKLu!!0;taOj~^%$aSi!v8{MhAIt>#rTMx^NhV+z6vgKtb+qjgzbe5SNZC4dr$@Qhx zZFiQPtAyIucq>Xsg@@+H8OvA#gCniw=w@iWI=s|Ucb$DVfiy=dmz3gj(M0{;(15Pc z5!tjC6OC+wTa~{C7m2euOl@dqQ@{*wRlsE;@iB!Y(Ef7ozQJ7-6??mf*EM&@D^S>Y zrzf#KS?tAB@?!1fdOwSbXztN-b=H^DDUG~(3Ur|( zQ^XPBIlzw&^oB591wTh}hC|OG%X2{3S|^STRFC?rYs9FmKe!51Zv(m#2cj~-z36RY zcC$Am?I{4U=@Xd(yvj@?Xw+-V>K?XHuINCBcT2(uALB!CaA>%+r*e7m-+ zW<)K1PoWMv*%?UY2jcUkqm$?YdHqu>BF~s?KIsXOLHld4{;8Aw=^jd^8yLIR3lSSQ z0%(H0hWr1&1k4C@vVkISfiuav+`^5siwQ>JzoUCQ<1@1JLmix}qA3EYgz-K=$qDWI zo$m69?{YVmf;SYrn&K%z@hB{Ovnle+p^RHRK!d!cAT)WQuM<$G%M-gDD1st50wLG| zLX&|bd@7^}Lf$(8gm}OsC<2TyyAS(8jhL_rYqTlgfdR}tdEtQ~*n!a^yL)NE1I#^2 zTR`0Nr{37Yk0`_Wi1{Jrcmdi&Cj2V`9xw=6OhRrnLN+8cBb_{_2mH(;u*G0(h#L@3BzEpoJ;7OnP5yl*TA7a6D2{yI|FISmF>0w=Y`b$rnfJ&AdFLm8mPBbdrnvCA?%KpUvVE3JYvEP^Vi%*JHQrff^G zJ3?yw$`+UcFuYRL3rs77Ciy(fbCdzOEK<|kLt%^0sXPKY6;dQz!r&BwD!2g`Ktd_C z%Ph@5WNJ!(T(FNc2pM=NB~XGFFajljC?zlg9Vk_ZO4aF9)f8|}=6wHxb40>HD*`WQ z&!&7pA!q@&L!)Ut0#$ti9T0&Ua7#PYh$Jji4!}&|JW|^z$qLmul`KD$j8N(-rT;7s z1r<;rkx8DQ$*Hl)Pn0(gqBm{r52#2O6hg%ah0sm8&(>%PqU=ZO{DB`R0%l^$B}6h5 zD8p3&(<7AuD{RjL6ai{%I@&^kS{2LT!#rw4!XmKF9#GX(O#!=P%Mj%Ofc#A^)d*_b zMt?=oxrC-8G{bBh*smN|a9q$FZGSOMllOv@Zp z%QQgTJ4PD-!<8M&uN2Q`s#Ux6&DWHHH3iHm$k8LR^7ii67a!VCx%3^9@T|I&o z#Z=q_*|}ZEy?ue^98y}W2(5iRTWrm@twI;L0pL^t*Obx-zJV$D!zlpByKKvPvPEsI zh!r+cuS4K|JSO*y%=81!5G4|}w9JZV%J0qBBP=Gjq|`7xK!JrvCr*jI6(}7rPs=1U zF!VXxTLC2yf-XK%8%R~2RRRrg&J-YHUd7WFNC8tlSd*2@7SMqAwayjz)agXXh2_2$NjCRdm-~>W=R~*Y8_1a$TGgC|5d)wK(&MIU`=gz?$QY zKJeSK=U`qz;+~+~5@L$0o-!uYdx00YfuUmvFeLw`MZ`??eN>(SGqnMsgIX1^OW9k`xC%(O+`>U^Wdr1a&tuEu zT+1WSi={M(bV5tjOFyl}QwT&tVmd-_hFgubV5hxPeCcI*X}Y~wmBU545kTO7-d`j5 z+4nU96L?j~#oWbARV65a%>}|$IY<+DT#7KgBOEjkJpvFtT>y^Ko(50MMbY|n#Gatt z{z>G;(+V4u!A3ToOm>tJ&=10~zF6x-$AbUlAkj5W1`x~$7Eso=rB2BO(h3z&B+p9a zeq<)^Rfsk1Ua$5v@<#jkMrs?;~J-KjZns^{RF|r zGm008Y5FoIMOvofLkL*b#v=XK_&iJ?2GettJPW%;@uW+Em`n8&h#D=+Ar;w*aL!b< z=F*(c#Y9c__B<}k--?Y*+K$+6Dq+syvRJ6oc z8aM$O-~pji?agk=e^$adv`e?-Y-QT*Rwm)5+-8qRr{%W7Jr+;7OeRWo=XOr*FdWX3 zh}jSEyrw%q_V_%FsDjq)C!gh8RfVXE<<7OMQ-hFCe$KqQ{Kg}#h-MvPr!C_4JVVLU zbfb<}o#5~MB(tXGNyB60*)$NU*`#4ACLTr^<XEr2j>q7p>RKAK10fk6xeW^xI7e)!b6m# zp)!dhT?cxH$yS(0#bD>95VWG7VG$QVj`y>_NXnU% z=ypQuE&Wx%hO;OE6hN(CCa(9d223g{6Mbb15%dN53RHIcYf;JHmqyGe65H=QIrZA* z&zCQJ-oU1fWfy!R_7rp8f!ljfuuMPqb~}k@JOYNs9ki>g?H*#6O@ygAyHTv}jQdD3mf?>a;1;r%zj;plY=$ z)~i~xa<$4q#n-SZx{}>$wk+DSYSX4ou_8r^tSw~BtxNZ=-Mo1B>g~(-uiwCc2MaDt z_^{!`h!3+}>$oxG$C4vcmK^o6RLoJ49_`H8Cuq>Ux-{z3Ggo3vSdt{{*Ro@C zJTW2kzlahPHhdU*!U+)-XA`GgTsBPBEmJdB-JGV**0@7^uKwAm=FHl&SEda1d)Ue1 zyN@rA0xtjDtANigR_wk#{P*(X)1M#MJbv=}^Ybs8{r`4PSvMe2(;1kMatb-O;ByQn z$5TSaNqF3ZBN>ESZx2A!8*Uc0Mj?n57DtnE$~o8|iVv0u;ek34_+nBhTo)98n6=QK zSz?K`ACEXzhF)A&`Bj#E^%+?tl1D0;q+LBa=_8a+W>sT=0L};_P%Ub?+=*SLSd&g6 ziYX#Vw&A85ZxP`JoN)h;IVPMOsmSG*UOKm8f?869<&`mVP#u++NqH4`;6-`ppy#2d zUSI4nxg?~IN*d{sh+3NHr8!o)X^nh(re}*L);X$|I=y*noC94LT80}+6q<(_p*riB zq~ZTbDy}!-snci&4&`E>FJ?z0rzkYWfeR`W>R+K>F{|TPnN|iZv{?ZOWMz|Tdl!*^ zb-V3c-zteIxzd`OR#R2o7-+G7GDX6l!6F4JMZNlzE4~hfNh`m{nHd_I45|5BaKrU` zuxtw5YG=MAvPdtmS?($Cfd9c;r9w-s1zxhrp4BW^A5(koWFYH!)wPRKMyY%qtB~w^ zWW~G{%X~RnX}LL*tTR?N|I==}o_+=~#0(ofs;Q|WOxvoUwVF`CpvC%+(p5`n>vAqN zeDtkdtJLDJ6AL|*Q&&=nkWyv6ymrTavCX#IF1KBCk#EcWvR!WJ{niS8$v}5~Hmv`k z1L1}1AcGBvD{h0|i93#XI*-pgNC4rm@3l?`ZtN?w6bXCP6zu7apZ+R}Qbs)Mj(4lLX8C?>@y8c21lOChN$pv4NbWQ1NU(`^98A%XcOcLj6P7t<&z4Pd~6DpVcO zTsTEy!SFIgykk#fgvUMdv5$WIBfZY@$0Q=LkT|R(r=lpwPw8oR|DYfi8Meg=D2Ie; zgiX_Yg1g*|QEC^F)g>=!LKM2OVJqB;*QDbUMlSL*G6Gbw04d8^(z2Geyd^FVR7gUe zV2PUw784aYM;M7_SHD|PDIGM)NjhuL_LBKfpU$TIoV@B*ZIqfHAS8t{U}I7>PH5Ov_C-&tW!_~3d!R2FrzTyR7sPn)TJ^tk4?o5(B!3{ z2%eLeKpf{4U)rDwkYJgU>?v3is*{CMGlUMMDNiS=RfY}qYpFA49MO5yjtb>n9epZZ z^QzZ&>M<*O{fB0bf`XXLXsQycs#GBcyw$msqNQP`O=b$#P};O7IJKru&p6qL{&cNh zYHKR9MlYkf@?E7}%3o8f+SQJ(Y(1>uUjvkrx)R8+3t1`ALfijX&(6fFzTM(xFDX`v zko8rb{7`Vg%DUe=R#$Gt4N-kXRk;#HDpGu6R5W0M)pEDHpdzAoO^V&|4oi+04JvO_ zh}QMiMw&OJW=_MTS@zNtlD|#woOJsza)O4R)HNM>mtq19gtx#3)`=hw4Alpo7AmB* z4ydAgTa*f=xiqR!vj7qjwhQ;Bg2LzyykpW?ZrWp`a}TT@55}H?qyhWuTuvo_DH*na%$966 zYZ-MC-ff0cjA5Wm5`%db?w&Q-=dv~wxz{!*R%?wbxN6CttK{{7PLktD`x4T_es@VT z9ZWjzxH{FwtptOd5H5@RC8kCVs9huLh_ad@uGSF2p#1Gw1Fzqsx^g(h1~zmDtIK4w zBfK*X8jSZb!SG)8&luc1rOeUUZ&nbYM@3MaRQvzW3y0{37ZTzQk@)4$MDdZe=boaZ=M^L!&e6d}c8fL-ZowyV z@HNHy>uJ0%%k7-<)tnqbZ7&+H)j9Iac!s=4zdJmczVv(c(ScA$?4n7_U!Oet&B~KD zmDBE34iEg9F;CO0{X7vsn;oLem2;_MDsFOLeTK{qd8fCING9T)mQVWQ(Py}Ky*Is& zPp7vz@7iCAn>*AzCw#-#E>q1j$G4SN@|l|a>dY#<@jd&3r z|6KF=Llo=n*ZOCP)}aLv&@qq2=~#@2AL)Hu_ly*dXx|;po2CU_n*o+K? z)s5OksnzlY4@Lamsx4Wo3E%y}TJe#f21Q3!g&QiQrAM$t_MGRg~NZ8@MAgQe!N-!aGxE%jEUbZRJwi%aCP+k-ol>Z?U431mGtwbL^ z*y#OI5BA*ymSGPy#catN8Ae^Rxnaq%P}LFE@pNGY!A=&YQP?fS*d^TVSG*cNui4hf2~B`4U`egs>MfNodLJ*n6I0;Wrcp$u z>DU-GHlc5A7)xv;TD2aZMPB|*-u|)R zD+c6qKpYT_<8+;$IX>d1z}POvP*Mfs(g7np2IErkqC&7C4AEX3-Vqp*21MEkk{M)) zRihYPqmyOh3c@5!wIp+VBZB`F)ooRzkKy8V-D5g#WcDRhNFLEUdSpB*RXt`5Q4)wF zejX!f2~VaDD*azH`W9;Z7EVSPLTZ~rTA^9BqC+C+5TVIty0U|E|0BwGfcDxGEH$>cQAuwTcU*eePxG*B^8dPh#eOw5hqWjC1^UPPND=2LSJc~+i6~;4r-)n86`)? z=CJuC+Ps9tG?;Z2X6^qG4IHiHO4dtsHi*f$UnxRid=}?)tfF$lXMP$V zOMWK6;pP^~pyvT)D{&{uVc$ju=8G<9XsF|wWg^}2Sm>#vN(E(NZlLW6V2`TOPgiEt=Z`9&@#$sXs~FN02otv z#g0wokKJMsny4U(mX(qygLtKsN@glLX$nf-LSSK?^52M7sg>mtIW7`S3|95^*b`}| zbs=Mnim5Tu=+OUNA~WJ>d6gr9zUPk;6_#eDD#@u@F4L#>=~*r*)Sw{Q-K3~C9+i43 z^XV5>y4`>3$)H~9fuz4DvVYtvn6A>5~iiz z5@HS^k!IdnI#*;?>->=_{?+HHMybB8m$lWaqp6?OacacL(u$g^iZZNV(PoW+nYzm6 zct)tj!qc&W33NW@`)Sc|rYZ?WYZW$WSuQ8Y4&1dqXK3;#s-@@pwNqhEl~nYlBa&%T zr0aC7n_mBc=c7jIxz-zV*y`tr)TSySwwgxEO~lFm9=~#uzxrV|Ev>8#?9uMz^RXWo zrlrCbtCoVEq}Jxwl8(eqhXchHu8wKN%8OB6>>o)atS&?-66}R-kts^;w}~ur(wtca ztSkO$iDDiAq7rFvV7I~@zR_y0vS_U)F5}uPnaWk;PU^)T*1VqR?V;$sU{ZHYN^)(;0m{WR(IW0*?MANS(&#zf=;YpNy}|BL z7;GbrCO8@%iIU>nY7s{$#OVSe-sb5-?kTl~u0#5*>O$m|`H|2FW$)H1xpG=mZJZhHZ+7gR4Wv&+i2a7_6pq!%>aEG{Zx*Jk zisc@WQdRqAs)@eg9Z{tkwx#ceZ|gYhKB}*$G+Iq0Fwxy(R2HkARIV-o=}xFD<$~JA z%B}oz(d~UOPU7#=mM*|TvCUDfwqh{0TIpM+pImCM4u`QW;_&ZIuow>|CdTaWZt5B* z?2v{gv@P*gdggC^tO?s`2ou)`vtkKbv7e40K{S&V>*RF0o$&yY8SijL<|Ts|U~vEH z@cB}zY}tgnp0RBz6_?Q(=ej2#`|+rnpuy!Y6-VtIMs3lWe+u|CQI#Lp9a(g;q9cySQgD{5d@rQb{zWOa_4YDYrrx&vj3=3!h zhj9bhGB)Qfyt;BHwya`q3FlqzH*>1>Vk?H)D;L>>GE*<9N zIx{CTw;wP^VzRRTckm!(@Ar4N~5GRj`M*yC#%M9?`hFS+ig3)vnc<^Gbz_J zPS&$WtMKXuFhdI|0hg0WC$fRA^aC%jN>eZpU8ztTZ#O>l2747uOtijM^hG1{wC*iW z$EQNPq#)n(CjTA!VHL3Kk>*ZZQ!BMw4=6OhY!Myn8>btQ%CuXij*8STRxj;M!}ERa zbYIhRLdf3)v}##rtN(`d0DrMcJ`!8MwPd&Td9LwXi)Qg|E)y%>G9}@G4ED)tHAZ(^ zAA@$^7Pi*~GGcGGt;zN8pw2X_9%S?LWY@Mz|C(5%sH`$A5i9pvcXgXJ_Y!ds6*4(T2iCT?Gjn$qvxa$3v=lcfHY%+)4!EdV zoBCDtvT`?~F|^>eZhTAVeAhR9*Co9og%S4SAx^iD4)y=8H##RbNHCs)^X>C8DG6(I zc=suK3z?kZbz;XU2kwO78m2U7IEI_CN3Ex82dOs$HGp^bgP%l-n|Fajo_%7bU?(|Y zPhJOKu!9#lV}`T~$0-uC7>{>(@AA>rTJRA@HAJFaIzLud8TN}~^@=k@^fK@CuK9UW zMA9Cy)oM10FYye0_{8>{elL~2(c*>!WU>Odso`9Paw?R6^^*T51Wq?Ols>tfSF29c zd4J+LfUj%{(>20Uc%P4XtTq)x7r7)QULo@G=Pr6Fx4A05d4$Bds-JA7e>Vu8#&+kq z|5{~`e>$(%I<9vKUe7R?bn>LHbE6}KML#Kmn{KQp>8yL~zTNq+H#cLUHQYjXuLGk{ zU%Qr1yO%iOiPUYen=q^2&ZCnoLwfbND|2Wt(}{8AN6W2@2P%+>I8ld6w!wTUy5Hv5481F7nU6()O4)^CEZdoj2B7A0S^5;?B3v38?+IA(4_Jbr(mq ze*HV0owH2%mbeqVaX(TXGx@8zvz}H2tUEjuL;PC4yI23A^0d3OkX8G=6JDG4qq^cZ zLW>jOZXisHJUVyfkteZApuDOZJSa11!f&;*yGFx1{r=KCCAA;&Q9OiaxARdb$YVC# zimAPiea0d^@|L_;UA#nNeNC%;LRyo{yE>oBylEphv?D~FkF`o5y0>R*v{@Ws88s^h zDV(Cc;-5X^Z#!K+Sm39ae#8BmLw#jZlfqYhMqEAK$31HA{XbaxrZ30ZM}BH(x~+S? zweNhJHoogGKH5(=&mX<%2eW6w#G5iN=0iHeGrRDwv+@6be(^_pfU`vDN5AXPVsL70*u(zo zzrXtjdA!&DCV#f|n|JRYr<3W1JBJWJh!`P)1i=Xu4kkpnP+>!c4;@B?I8kCniWeBIX)R~i~%zr*j1|=zw=s=?a zg(fXoRB2PEPoYMY`m|_Oqf<$e__=jw*PdU!h6OuTY*~jQK&BPBR&86hZ{5a)J9ptf z6;2;Wc<{hMQ@wvBI34&>ZehBI4JSstSTRSXDpi&xJ6UpN%9phs)ohjXX3tekeiq%C z^k~ziQJ+?wny6*hm|?%(8F?(^l#LnZ#=ZYrcW>Sd|DAx~ckhGYO7kWU;k32E-@c(g zmmWR3(werhXHOZMyX@{XSD(f@o_u-pRKv4A>Ye@f_F+|C$KFyU_38KR=f@w{E?&KS zi33b9nD*1pzycA>?=kHdY_Nj&+>5ZXf6^20siXc;Ps0i~>~JX#SA$SQ2_vMfGRP84 z@xT>TY;3p@ochnWqz;lG1m&EXKr3wArzof@%{$M`6TbmJ zd#TSa0R=Nqu(;$>Nh${wRMA9BJd*zfDX=lQz|a%O(orcb zm8}a&^OLhhS!GnwLf=EQ)mdGwRnYA`!-~{hP3_epv_w#0f~P)pa{@T!d}>%bd2QBL zUz;MzB;cN+)mmHKgLO+St0ZgNZ=-C9D{QYV7q-tNbynSH^%Q7?6NY_CMyNh*v#GvB zIN@DP_dP*`e*p&Avwr*S5JZC!K3L&|8CIBJef=F6;({f9m;)3p&KTp3HSU<>k39|< z5hj!`Q^w>cHHueDMw*)pfB(I z@yj#cJaW%T|J?M_9ba2@wkP)6Y1gBMonYBpPyBV;W5<1V-D_X`cHeUcp7r6u2JIgT znt~JAZgz3AO8XPKLJLd0tA#m1P+)$1TIj44O}1rAy_~OMv#INtbhX# zSV03a@PQW8pa(%%!R-HhaD*W=;RjK8LKUWvg%T{G2(i;b8Lp6qGqhn1C5S-|>X3&E zoZk<-=KvuNQHbRuA`y*v#3GtciAxM$6V(UBBr0)=N30?enb^cD4l#aR++O~uM-t>E zWo|dBo4o236)@IMM%TMra=aKvAkI;ab)@4R?U+aJ@vna6<74#vxW)kv5`Yuj;URk{ z0UV+bks)m44R82D3rZ4_i?n1VNf<*AQu30W#H1%{h)7W;l7V_mpA@r5#Z+2xl~{bD z7F)^1SUORBsC=a=Z^_DBx>9~`^ks7X7`NojEm_2Jo>cx=FYGO|UcYo^GokrRX-1Qp z)3jzav3X5xW|RM$+w^8P!D&rAzHg1eG-o-{c}{hvlb!2yXFK8fPI<pwsl`55eFHU&@Rg8{l9%3eSqb9W~O0jxXt!9<0TlHlb%Lqi9j`gNwHEUVXdRDcj zm8JURpIE17lA&tvJax6}UGbV%z2bFFef`Ir{`yy{GV`h9nW$ctQ_-g4?L5j;=3w{Y z)viufvX%d(>}4$*C#J&5i_k-7dDa?Qwu+Xtqcv@5t7pDodNGV8+38+k8(Z1VmbT;Z zYhQ0W*f%b9s&K*zMeRBq?KLs5w=M2*jhkHLE?2qDW$tsG8(rv5SGv`u?scu3UF>ex zx=P6`X2JViU)GkqNdazon-bovG8eK+)$V(_8(;X&SHAV7?|toyUBdR|uAkbTR4 zSK^nz`7Q8)4V+*EFId6T#mX;DB3|`MxR~fgZ-p&P#tEO4!5wa}he7;d5r_D`%*?Bt z=vp4S{TH_18}W-t3}YF`n8q)jN;FM!-sWwX!aVkIk1g9?ArINaH8%2$k$hw&<yi z{R{t#$+Nr^%ND6gw(^p(d}S>c_`%SOaDXNHV=)7H%w_&2k%*B=XTP?Whi?q zjoVBMcGC^T^fEtOGmwCR~=J||u)gEFCJ6p#-+R?q{ z^{+>o=ph4}*uFM)k3F5;R$E%t&3-kjoh@ouOB>qHb~UxHP3mcDyV}@hwza?QZB2uF z+~VdmM*(Z$TZ0+T)~hvb!MfRa&s*O0ruV(=oo{^aTi^ZW_rLueaDWe7-~}f*y^sH$ zVTGrc*b8@fP>vn(VozM+joveQX>BiCI{?GFKDfa_{&A6qoa7@ndC5_J@_`ro;Vu6M z%U$kpmulS}b+xaZ?QLIs8TZ;fx6hsKb+{Neu*b-Y@gB#cM=;~^jUtIO0RfVVu~&1v?_ORw^AmHg*H zA9}Ta3hsOLUgb|OdeyI<^;7YBa6KOsnwCkBf5&`GX+PTBx1RUC_q}Z8r1<~6Hu?9( zH~#UZ!gB%da0rR82#rwdnCh2cP|oTuoaoKFtnUb=a0;og z3N?_V3U8ZoE-1Fp3cc_P!7vPe&!e(%*FegkC@u{vP7T>`4b7}6go$PFgv$-vuny_) z4(+fFZ^W@Ku1MG}2}i1Y@(>RRaS#o$5E1bZ6)_PRaSw<$u@gD*6SGRzwC~Owz@k9$6g@E&QE?Sju@zbI60PICJXU$+M@=pFo2O9ZIyQ(W6L{DqYI7sne%WqjsDi z)!~GXRkLc{%C)Q4uVBN99ZR;X*|TWVs+Ea#t=qS7(BTJr4xw7TUm@{kM%(=7Y&!9t#9!C>oFtCrffZB_~s zDDaIPd!X#qxO3~?&HJJ2-oS$k9}ZD5VB^G-D_<^@szB$=Q$qI%8+P>T*t2UNO8fTq z@8H9W{~u4jy!rETyQ5#vzPVu~=nC}WIQ zi4cN~IEL6?jy&GzV~;tK2$Y9Jen?P}o`E=Gg4szR!2==usAQ2;PHAP8SYD|mmNU+H zWtTL9DQ1{tj%j9@Xr8HNnryD=CYxKvN#vVvR+QnL4;pl3LQF=7*Pd8)2&H8R9%$&3 zh(7RSp^O^Z=%bEC3hAVhR!ZrmmS&3SrkZxjDW{2MDXN^Lj%uosZC;gSs$HJyYN@ck z|0-*&w9aa4t+>9*>aKM1Dp;kVe)y@U#13n0vB(~)Y_iN^nrNbhChAzT)Gljnwb)*( zZMMZKs;HyhJ{#`1;+Csuu5$LOE{*8k>TbL6zAJCM^m6Izx@V5Kkfk7o%k8!R|0{67 z1UF0W!HDuTsX+rbT=2sVM|`Z4i%RS$zV~K~@x~f=%<;z_hYa$__ZG>f12Gnfs00b& zwH;oWnrrS^$@-_SLNh`{^3Edn%=6Da2MzSlLQimWM0?g3E5Zn~hOB=`8btKeDOM1H z)mTU1@orRiEwafU+c&Gs2P*}ro zdKVq|i$Xf|x7zlK)?$RH