teknium1
de114b3af1
refactor(platforms): one scoped-secret reader and spec-driven enablement/YAML-bridge boilerplate across all adapters
...
Scoped secrets — `gateway.platforms._shared.get_scoped_secret` is the single implementation of
the "scope authoritative, unscoped default-profile falls back to os.environ" read:
- plugins/platforms/buzz/adapter.py::_get_scoped_secret (113 LOC, ~100 of which were one
docstring paragraph pasted 16x) -> 3-line forwarder over the canonical with
`external_fallback=True`. Its one genuine extra rung (one-shot profile-scope build so a
Bitwarden-managed key is visible to the startup gate, #95216 ) moves into `_shared` as that
keyword plus `_unscoped_profile_secrets`.
- weixin::_wx_secret, matrix::_startup_env_secret, the inline try/except copies in slack
(SLACK_APP_TOKEN) and telegram (TELEGRAM_WEBHOOK_SECRET/_URL) -> canonical.
- The "extra-first, then scoped env" reader written 11x under 6 names (weixin._extra_or_env,
bluebubbles/ntfy/photon/wecom `_setting`, dingtalk `_extra_get`, mattermost `_extra_or_env`,
slack `_extra_or_env_flag/_channel_set`, feishu closures) -> `_shared.extra_or_secret`.
- `authz_mixin._platform_gate_env` -> `_shared.platform_gate_env`; discord/telegram drop their
`_scoped_gate_env` twins; run.py / run_config_loaders.py / slack import it directly.
Boilerplate — three table-driven helpers in `_shared` replace the pasted docs template:
- `seed_extra_from_env(spec, home_env=)` replaces 8 `_env_enablement` bodies (buzz, google_chat,
irc, line, ntfy, photon, simplex, teams; raft is a one-liner and untouched).
- `apply_yaml_bridge(cfg, spec)` replaces 7 `_apply_yaml_config` bodies (buzz, dingtalk, feishu,
matrix, mattermost, slack, whatsapp); discord/telegram keep bespoke bridges (alias keys,
nested `platforms.*.extra`, generic-key exclusions). buzz and mattermost previously bypassed
`yaml_env_setter` with hand-rolled `os.environ` writes.
- `env_is_connected(*vars)` replaces 5 identical `_is_connected` (discord, homeassistant,
mattermost, slack, sms).
- 8 identity `_build_adapter` wrappers deleted; `adapter_factory=<Class>`.
Behavior change:
- buzz `_apply_yaml_config` returned None, so under multiplex a secondary Buzz profile got
neither env (correctly skipped) nor `extra` for relay_url/channels/allow_all_users/...; it now
seeds `extra` like every other hook. It also wrote reply_in_thread/reply_to_mode to the process
env even inside a secondary profile's scope (first-writer-wins leak, #80099 class); it no longer
does. BUZZ_POLL_INTERVAL is bridged through the same table.
- `home_channel.name` default when `<X>_HOME_CHANNEL_NAME` is unset is now the literal "Home" for
all plugins (irc/ntfy/buzz used the chat id; simplex/teams/photon/google_chat already used
"Home", as do the built-in platforms in gateway/config_env.py).
- weixin's non-secret tunables (send_chunk_*, rate_limit_circuit_*) now read through the scoped
reader instead of raw os.getenv — a secondary profile no longer inherits the default's values.
- `extra_or_secret` treats a blank string in extra as unset (falls to env) and an explicit False
as a real value, the strictest of the merged copies.
- slack `reaction_trigger_target` bridges via str(); `reaction_triggers` comma-joins any list-ish
value (was list/tuple/set only) — same env text for every real YAML shape.
Docs: website/docs/developer-guide/adding-platform-adapters.md (the template the copies were
pasted from) and gateway/platforms/ADDING_A_PLATFORM.md now show the helpers and the scoped
reader; gateway/AGENTS.md points at the one implementation.
Tests: tests/gateway/test_shared_platform_boilerplate.py — every plugin `_env_enablement`
reads only through the scoped getter (parametrized over the 8 plugins, spy on the seam, raw
`os.getenv`/`get_env_value` asserted untouched); buzz bridge seeds `extra` for a secondary
profile and still bridges env for the default; one home-name rule; extra_or_secret contract;
external_fallback rung. Existing tests repointed: tests/agent/test_secret_scope_tier1_migration.py,
tests/plugins/platforms/buzz/test_buzz_unscoped_requirement_gate.py.
2026-09-13 05:32:38 -07:00
..
2026-09-12 05:09:11 -07:00
2026-09-09 13:01:48 -07:00
2026-09-02 13:30:17 -07:00
2026-07-29 13:10:23 -07:00
2026-09-02 20:51:07 +05:30
2026-09-03 13:28:22 -07:00
2026-09-10 15:13:02 -04:00
2026-09-11 13:06:16 +05:30
2026-08-14 21:54:56 -07:00
2026-08-29 18:34:35 -07:00
2026-09-11 13:06:16 +05:30
2026-08-29 18:34:35 -07:00
2026-09-03 13:16:47 -07:00
2026-09-03 13:16:47 -07:00
2026-07-29 13:10:23 -07:00
2026-09-01 16:27:20 +05:30
2026-09-03 13:16:47 -07:00
2026-08-29 18:34:35 -07:00
2026-09-03 13:16:47 -07:00
2026-09-03 13:16:47 -07:00
2026-09-07 08:07:26 -07:00
2026-09-03 13:16:47 -07:00
2026-08-15 00:34:29 -07:00
2026-09-07 08:07:26 -07:00
2026-08-18 20:34:46 -04:00
2026-09-03 13:16:47 -07:00
2026-08-20 12:29:11 -05:00
2026-09-03 13:16:47 -07:00
2026-09-03 13:16:47 -07:00
2026-09-09 10:32:01 +05:30
2026-07-29 13:10:23 -07:00
2026-08-23 02:54:30 -07:00
2026-09-07 21:43:54 +05:30
2026-08-31 10:51:19 -07:00
2026-07-29 13:10:23 -07:00
2026-08-31 13:00:24 -07:00
2026-09-07 00:41:09 +05:30
2026-09-09 16:21:36 -07:00
2026-09-09 16:21:36 -07:00
2026-09-01 23:56:06 -07:00
2026-09-01 23:56:06 -07:00
2026-09-03 13:16:47 -07:00
2026-09-10 09:11:00 -07:00
2026-09-11 13:06:16 +05:30
2026-09-03 13:16:47 -07:00
2026-07-15 07:47:18 -07:00
2026-09-02 21:22:07 -07:00
2026-07-29 13:10:23 -07:00
2026-07-01 17:00:30 +05:30
2026-09-03 19:33:28 -07:00
2026-07-29 13:10:23 -07:00
2026-09-10 09:11:00 -07:00
2026-07-29 13:10:23 -07:00
2026-08-03 23:01:03 +05:30
2026-09-03 02:06:51 -07:00
2026-09-03 13:29:35 -07:00
2026-09-09 14:06:12 -07:00
2026-09-03 13:29:35 -07:00
2026-09-12 08:28:49 -07:00
2026-08-31 13:00:24 -07:00
2026-08-02 20:12:50 -07:00
2026-09-10 18:11:25 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-09-07 06:02:22 -07:00
2026-07-29 13:10:23 -07:00
2026-09-07 07:06:58 -07:00
2026-09-09 12:19:13 +05:30
2026-08-26 10:10:11 -07:00
2026-09-02 19:12:32 -07:00
2026-07-29 13:10:23 -07:00
2026-09-03 13:29:35 -07:00
2026-07-29 13:10:23 -07:00
2026-09-11 01:37:22 -07:00
2026-09-11 03:45:33 +05:30
2026-08-16 01:55:00 -07:00
2026-09-01 08:30:26 -07:00
2026-07-29 13:10:23 -07:00
2026-08-14 21:54:56 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-14 13:56:58 -07:00
2026-09-02 13:29:47 -07:00
2026-09-06 13:21:17 -07:00
2026-08-20 20:20:23 -07:00
2026-08-02 11:52:59 +05:30
2026-08-07 16:57:11 +05:30
2026-09-07 08:08:04 -07:00
2026-07-29 13:10:23 -07:00
2026-09-03 03:09:06 +05:30
2026-08-15 01:04:19 -07:00
2026-07-29 13:10:23 -07:00
2026-08-31 14:02:55 -07:00
2026-08-31 13:00:18 -07:00
2026-08-31 13:00:18 -07:00
2026-09-03 13:28:22 -07:00
2026-09-07 08:09:57 -07:00
2026-07-29 15:37:24 -07:00
2026-09-01 12:08:11 -07:00
2026-08-12 12:42:39 +05:30
2026-09-07 06:04:44 -07:00
2026-08-23 19:02:30 -07:00
2026-07-29 13:10:23 -07:00
2026-09-07 05:24:15 -07:00
2026-08-24 11:25:04 -07:00
2026-07-29 13:10:23 -07:00
2026-09-03 14:00:59 -07:00
2026-08-23 18:27:07 -07:00
2026-08-26 21:38:20 -07:00
2026-07-22 08:11:40 -07:00
2026-08-31 12:36:02 -07:00
2026-07-29 13:10:23 -07:00
2026-07-23 08:19:14 -07:00
2026-07-29 13:10:23 -07:00
2026-08-09 22:29:39 +05:30
2026-08-23 18:27:07 -07:00
2026-09-02 04:14:10 -07:00
2026-09-07 02:30:04 -07:00
2026-08-30 09:03:57 -07:00
2026-08-28 12:38:49 +05:30
2026-09-02 04:12:12 -07:00
2026-09-09 09:21:39 -07:00
2026-07-29 13:10:23 -07:00
2026-08-02 22:15:20 +05:30
2026-07-29 15:37:24 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 13:29:35 -07:00
2026-08-30 19:46:21 -07:00
2026-08-31 09:58:11 -07:00
2026-08-26 07:16:04 -07:00
2026-08-31 14:09:42 +05:30
2026-08-28 02:29:27 +05:30
2026-08-30 19:46:21 -07:00
2026-09-07 02:30:04 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-28 06:32:43 -07:00
2026-09-06 14:19:42 -07:00
2026-07-29 13:10:23 -07:00
2026-08-23 15:03:29 +05:30
2026-07-31 23:16:58 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-31 10:39:55 -07:00
2026-07-31 23:16:58 -07:00
2026-07-29 13:10:23 -07:00
2026-09-06 13:21:17 -07:00
2026-09-08 02:27:01 +05:30
2026-08-31 20:43:00 -05:00
2026-09-06 13:21:17 -07:00
2026-08-23 18:27:07 -07:00
2026-08-26 07:16:04 -07:00
2026-09-07 05:59:08 -07:00
2026-07-29 13:10:23 -07:00
2026-09-03 13:30:27 -07:00
2026-09-09 09:21:55 -07:00
2026-09-07 08:13:01 -07:00
2026-07-29 13:10:23 -07:00
2026-07-23 19:44:35 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-09-07 00:49:51 -07:00
2026-09-05 16:44:23 +05:30
2026-07-29 21:30:53 -07:00
2026-08-04 11:00:04 +05:30
2026-09-13 05:20:26 -07:00
2026-08-24 04:14:26 +05:30
2026-09-02 20:51:07 +05:30
2026-09-07 22:47:33 +05:30
2026-08-03 19:08:09 +05:30
2026-08-04 11:35:06 -06:00
2026-08-04 13:12:24 +05:30
2026-07-17 13:08:46 -04:00
2026-09-03 19:33:28 -07:00
2026-09-03 13:16:47 -07:00
2026-09-03 19:33:28 -07:00
2026-09-07 08:06:48 -07:00
2026-09-09 21:17:35 +05:30
2026-09-01 22:42:27 +05:30
2026-08-04 13:20:15 +05:30
2026-08-12 23:47:28 -07:00
2026-08-14 21:54:56 -07:00
2026-07-29 13:10:23 -07:00
2026-09-05 17:43:45 +05:30
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-09-11 03:45:33 +05:30
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-09-03 11:27:40 +05:30
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-09-03 01:43:22 +05:30
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-09-12 05:56:15 -07:00
2026-09-07 22:47:33 +05:30
2026-08-23 20:01:18 -07:00
2026-09-09 21:16:48 +05:30
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-09-07 08:19:32 -07:00
2026-09-02 13:29:48 -07:00
2026-09-01 02:14:35 -07:00
2026-09-06 05:37:03 -07:00
2026-09-10 13:23:00 +02:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-29 18:23:07 -07:00
2026-07-29 13:10:23 -07:00
2026-09-12 08:23:42 -07:00
2026-09-03 03:41:52 -07:00
2026-09-03 16:20:10 -07:00
2026-08-03 21:53:13 +05:30
2026-07-29 13:10:23 -07:00
2026-09-12 21:52:48 -07:00
2026-09-09 16:30:24 -07:00
2026-08-30 20:40:43 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-13 15:24:47 +05:30
2026-09-07 06:07:16 -07:00
2026-09-07 06:15:43 -07:00
2026-09-13 05:09:06 -07:00
2026-09-02 14:43:45 -07:00
2026-09-07 00:20:11 +05:30
2026-09-02 18:58:42 -07:00
2026-09-02 13:29:48 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-19 14:58:59 +05:30
2026-09-07 08:10:36 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-09-12 21:18:24 -07:00
2026-09-07 21:10:50 -07:00
2026-07-29 13:10:23 -07:00
2026-09-12 21:10:02 -07:00
2026-09-07 21:10:50 -07:00
2026-08-29 02:30:44 -07:00
2026-09-10 01:08:18 -07:00
2026-08-31 13:00:33 -07:00
2026-09-11 15:26:46 -07:00
2026-09-06 09:09:00 -07:00
2026-09-03 03:07:33 +05:30
2026-07-29 13:10:23 -07:00
2026-08-28 12:15:24 -07:00
2026-09-06 14:19:42 -07:00
2026-09-11 15:26:46 -07:00
2026-09-07 06:05:13 -07:00
2026-09-12 08:23:13 -07:00
2026-09-02 13:29:31 -07:00
2026-08-23 18:25:19 -07:00
2026-09-07 08:28:43 -07:00
2026-09-07 08:28:43 -07:00
2026-07-29 13:10:23 -07:00
2026-09-03 13:16:47 -07:00
2026-08-30 09:03:57 -07:00
2026-09-11 11:54:49 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-09-09 11:42:43 -07:00
2026-08-29 12:06:48 +05:30
2026-07-29 13:10:23 -07:00
2026-09-03 13:28:22 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-09-03 12:42:38 -07:00
2026-09-12 08:27:11 -07:00
2026-07-29 13:10:23 -07:00
2026-08-19 22:41:05 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 21:30:53 -07:00
2026-08-13 23:15:25 +05:30
2026-09-12 08:22:57 -07:00
2026-09-06 13:25:48 -07:00
2026-09-06 13:25:48 -07:00
2026-07-29 13:10:23 -07:00
2026-09-06 13:25:48 -07:00
2026-07-29 13:10:23 -07:00
2026-08-15 01:04:19 -07:00
2026-09-03 13:29:35 -07:00
2026-09-03 13:16:47 -07:00
2026-08-17 12:58:51 -07:00
2026-09-02 16:46:33 -07:00
2026-08-14 22:04:16 -07:00
2026-09-03 13:16:47 -07:00
2026-08-01 14:27:12 +05:30
2026-07-01 06:02:33 -07:00
2026-09-10 18:11:25 -07:00
2026-07-23 16:17:27 -07:00
2026-08-13 23:10:16 +05:30
2026-08-14 21:36:41 -07:00
2026-07-29 13:10:23 -07:00
2026-09-03 22:00:01 -07:00
2026-07-29 13:10:23 -07:00
2026-07-23 18:40:09 -07:00
2026-08-13 15:24:47 +05:30
2026-09-07 06:15:43 -07:00
2026-08-19 13:56:11 -05:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-24 03:20:57 -07:00
2026-07-29 15:12:28 -07:00
2026-09-12 07:46:36 -07:00
2026-09-03 00:58:16 -07:00
2026-09-11 16:50:20 -07:00
2026-07-29 13:10:23 -07:00
2026-09-11 15:26:46 -07:00
2026-09-12 01:35:05 -07:00
2026-09-03 13:12:23 -07:00
2026-07-29 13:10:23 -07:00
2026-09-03 13:16:47 -07:00
2026-09-09 16:30:24 -07:00
2026-09-07 05:24:15 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-09-05 06:09:24 -07:00
2026-09-02 18:29:20 -07:00
2026-09-11 13:06:16 +05:30
2026-09-11 03:45:33 +05:30
2026-09-11 03:45:33 +05:30
2026-09-06 09:11:04 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-09-02 15:53:44 -07:00
2026-09-02 21:46:36 -07:00
2026-07-29 15:37:24 -07:00
2026-09-01 07:00:38 -07:00
2026-09-03 13:33:47 -07:00
2026-09-03 04:51:51 +05:30
2026-09-11 15:26:46 -07:00
2026-09-07 04:38:59 -07:00
2026-09-06 02:18:14 -07:00
2026-09-09 12:42:02 +05:30
2026-08-28 23:38:59 -05:00
2026-09-02 13:29:47 -07:00
2026-09-03 13:27:01 -07:00
2026-09-03 17:00:26 -07:00
2026-09-03 13:28:22 -07:00
2026-07-29 13:10:23 -07:00
2026-08-12 18:41:59 -07:00
2026-09-03 15:07:39 -07:00
2026-07-29 13:10:23 -07:00
2026-08-30 01:20:27 -07:00
2026-07-29 13:10:23 -07:00
2026-08-03 22:55:36 +05:30
2026-09-09 09:59:13 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-31 11:18:53 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 15:37:24 -07:00
2026-09-03 12:26:22 +05:30
2026-08-06 02:22:08 +05:30
2026-09-03 12:23:55 +05:30
2026-08-23 17:47:50 -07:00
2026-09-03 13:28:22 -07:00
2026-09-02 13:53:57 -07:00
2026-09-06 13:32:51 +05:30
2026-09-02 13:53:57 -07:00
2026-08-29 11:33:05 +05:30
2026-09-02 16:37:14 -07:00
2026-09-02 16:10:07 -07:00
2026-09-03 13:29:35 -07:00
2026-09-02 09:57:39 -07:00
2026-09-12 13:44:52 -07:00
2026-09-03 13:28:22 -07:00
2026-07-29 13:10:23 -07:00
2026-09-13 05:09:43 -07:00
2026-09-03 13:16:47 -07:00
2026-07-29 13:10:23 -07:00
2026-07-10 05:41:59 -05:00
2026-09-12 08:06:48 -07:00
2026-08-19 16:04:22 -07:00
2026-09-07 08:24:54 -07:00
2026-09-10 02:44:26 -07:00
2026-08-06 22:02:37 -05:00
2026-09-13 05:07:50 -07:00
2026-08-22 16:47:39 +02:00
2026-08-05 22:40:51 -07:00
2026-09-09 12:19:13 +05:30
2026-08-28 08:28:21 -04:00
2026-08-13 12:23:36 -07:00
2026-08-19 08:52:03 -07:00
2026-08-28 08:28:21 -04:00
2026-08-15 00:33:01 -07:00
2026-09-10 13:23:24 -07:00
2026-08-28 08:28:21 -04:00
2026-08-16 01:55:51 -07:00
2026-09-06 14:04:05 -07:00
2026-07-29 13:10:23 -07:00
2026-09-03 13:28:22 -07:00
2026-07-29 13:10:23 -07:00
2026-08-07 19:44:35 +05:30
2026-09-13 05:09:43 -07:00
2026-09-08 04:38:47 -07:00
2026-09-01 16:01:53 -04:00
2026-07-21 12:11:31 +05:30
2026-09-09 17:04:30 +05:30
2026-07-29 13:10:23 -07:00
2026-08-20 11:36:54 +05:30
2026-09-02 18:58:42 -07:00
2026-09-13 05:32:38 -07:00
2026-09-01 22:28:52 -07:00
2026-09-02 16:27:44 -07:00
2026-09-05 00:10:26 -07:00
2026-08-16 11:32:02 -07:00
2026-09-06 05:35:12 -07:00
2026-08-23 13:34:32 +05:30
2026-09-07 08:08:41 -07:00
2026-09-03 13:29:35 -07:00
2026-09-03 02:35:21 -07:00
2026-07-29 13:10:23 -07:00
2026-09-12 07:54:57 -07:00
2026-09-13 05:07:11 -07:00
2026-08-29 08:23:47 -07:00
2026-07-31 07:30:30 -07:00
2026-07-29 13:10:23 -07:00
2026-09-12 08:25:36 -07:00
2026-07-29 13:10:23 -07:00
2026-08-30 04:53:39 -07:00
2026-08-29 20:39:04 -07:00
2026-09-12 08:25:59 -07:00
2026-09-02 19:41:47 -07:00
2026-08-08 00:07:14 +05:30
2026-09-03 13:28:22 -07:00
2026-09-06 13:08:31 -07:00
2026-08-14 14:15:42 -07:00
2026-09-03 13:29:35 -07:00
2026-07-29 13:10:23 -07:00
2026-08-08 14:09:41 -07:00
2026-09-12 21:07:46 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-09-07 05:24:15 -07:00
2026-07-29 13:10:23 -07:00
2026-08-18 20:34:46 -04:00
2026-09-03 13:28:22 -07:00
2026-08-23 18:25:19 -07:00
2026-09-02 01:06:24 -07:00
2026-08-27 16:13:45 +05:30
2026-07-29 13:10:23 -07:00
2026-09-12 08:34:07 -07:00
2026-09-03 02:07:33 -07:00
2026-07-29 13:10:23 -07:00
2026-08-29 18:23:07 -07:00
2026-08-07 19:44:35 +05:30
2026-07-29 13:10:23 -07:00
2026-07-30 21:07:36 +05:30
2026-09-02 19:11:11 -07:00
2026-08-29 19:13:00 -07:00
2026-07-28 03:54:16 -05:00
2026-09-09 10:31:26 +05:30
2026-09-08 13:36:05 -07:00
2026-08-24 20:10:44 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-15 00:33:01 -07:00
2026-09-12 21:10:02 -07:00
2026-09-13 05:09:43 -07:00
2026-07-29 13:10:23 -07:00
2026-08-23 18:24:43 -07:00
2026-07-20 13:04:12 -07:00
2026-09-02 00:26:57 -07:00
2026-07-29 13:10:23 -07:00
2026-09-01 20:55:35 +05:30
2026-09-12 08:25:14 -07:00
2026-07-29 13:10:23 -07:00
2026-09-03 14:18:25 -07:00
2026-07-29 13:10:23 -07:00
2026-09-10 10:27:07 -07:00
2026-09-06 13:21:17 -07:00
2026-09-02 16:42:25 -07:00
2026-09-06 13:21:17 -07:00
2026-09-10 10:27:07 -07:00
2026-09-03 03:31:03 -07:00
2026-09-10 13:23:00 +02:00
2026-09-03 09:54:04 -07:00
2026-07-29 13:10:23 -07:00
2026-09-03 13:48:14 -07:00
2026-09-09 09:51:31 -07:00
2026-09-01 03:19:59 +05:30
2026-07-29 13:10:23 -07:00
2026-09-12 10:00:06 +05:30
2026-09-03 05:20:11 -07:00
2026-07-29 13:10:23 -07:00
2026-09-06 13:52:15 -07:00
2026-08-20 12:35:20 +05:30
2026-09-03 13:29:35 -07:00
2026-09-03 13:29:35 -07:00
2026-09-06 13:21:17 -07:00
2026-09-10 02:44:26 -07:00
2026-09-10 11:48:01 -07:00
2026-09-09 02:35:41 -07:00
2026-09-09 02:35:41 -07:00
2026-09-09 02:35:41 -07:00
2026-09-07 08:08:41 -07:00
2026-09-09 02:35:41 -07:00
2026-08-29 12:33:44 +05:30
2026-07-29 13:10:23 -07:00
2026-09-03 14:18:25 -07:00
2026-08-22 16:07:12 +05:30