Peter Steinberger
f8e35afecc
feat: avatar upload UI, self-service profiles, server-side avatar route ( #111421 )
...
* feat: avatar upload UI, self-service profiles, server-side avatar proxy
* refactor(ui): make resolveAvatar synchronous so avatar updates render immediately
resolveAvatar no longer does async work (gravatar moved server-side), so
the until()-deferred render left the identity chip img stale after
updateSelfUser. Rendering synchronously reuses the img element and
reflects avatarUrl changes on the next render.
* fix(gateway): bound avatar Gravatar lookup to one timeout budget
Linked-email Gravatar lookups ran sequentially, each with its own 5s
timeout, so an upstream outage stalled the held connection for
5s x linked-email-count. Resolve them concurrently and pick the first
hit in email order, keeping primary-email precedence while capping the
request to a single timeout budget.
* fix(gateway): cap per-profile Gravatar fan-out to bound sockets and memory
A profile with many linked emails would fan out one concurrent fetch per
email with no bound, each able to buffer up to MAX_GRAVATAR_BYTES before
the cache budget applies. Cap the lookups to the first 8 primary-ordered
emails so a single avatar request holds a bounded number of sockets and
transient bytes.
* test: reconcile avatar tests with server-side gravatar model after merge
main landed a client-side Gravatar path (browser computes the gravatar.com
URL); this branch resolves avatars through the same-origin gateway route,
which is the only approach that works under the Control UI CSP (img-src
'self'). Update the identity-section, app-sidebar footer chip, and
profile-page e2e expectations to assert the canonical /api/users/<id>/avatar
route (gateway serves the Gravatar fallback behind it) instead of a
CSP-blocked direct gravatar.com image.
* test(gateway): fix fetchImpl mock param type for check-test-types
The Gravatar mock typed its param as (url: string), narrower than the
fetchImpl signature (URL | RequestInfo); function-param contravariance
made it unassignable under tsgo:test. Widen to the fetch input type and
extract the URL via a small helper that avoids no-base-to-string on a
Request.
* fix(gateway): short-circuit Gravatar lookups and version presence avatar URL
Two autoreview findings on the avatar path:
- Privacy: the concurrent Promise.all fan-out queried every linked email's
hash against Gravatar even when the primary already had one, exposing
secondary work/personal addresses. Resolve sequentially with short-circuit
so a later hash is disclosed only after the earlier email is a definite
miss, under one shared request deadline that still bounds total latency.
- Staleness: presence published an unversioned /api/users/<id>/avatar, so a
reconnecting viewer's <img> kept the stale cached image after an upload.
Carry the profile revision as ?v=<updatedAt> so a changed avatar refetches.
2026-07-19 08:52:01 -07:00
..
2026-07-19 08:37:00 -07:00
2026-07-19 08:52:01 -07:00
2026-07-19 08:52:01 -07:00
2026-07-16 09:12:50 -07:00
2026-07-18 06:45:09 +01:00
2026-07-19 05:30:54 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-18 17:53:45 -07:00
2026-07-03 17:58:15 -07:00
2026-06-22 17:38:57 +08:00
2026-07-15 23:01:26 -07:00
2026-07-15 23:01:26 -07:00
2026-07-12 14:29:52 +01:00
2026-07-14 08:43:35 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 00:42:56 -07:00
2026-07-10 13:31:22 +01:00
2026-07-16 21:44:38 +05:30
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-06-24 10:22:57 -07:00
2026-07-09 15:53:02 +01:00
2026-07-13 05:47:05 -07:00
2026-07-11 10:25:14 -07:00
2026-07-14 09:27:02 -07:00
2026-07-13 05:47:05 -07:00
2026-07-18 20:17:51 -07:00
2026-07-18 20:17:51 -07:00
2026-07-18 20:17:51 -07:00
2026-07-18 20:17:51 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-18 11:27:40 +01:00
2026-07-18 11:27:40 +01:00
2026-07-19 07:35:45 -07:00
2026-07-19 07:35:45 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 00:35:08 -07:00
2026-07-18 20:26:17 -06:00
2026-07-18 20:26:17 -06:00
2026-07-16 00:45:23 -07:00
2026-07-19 00:52:21 +01:00
2026-07-19 00:52:21 +01:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-19 08:48:26 -07:00
2026-07-19 08:48:26 -07:00
2026-07-10 03:27:00 +01:00
2026-07-10 03:27:00 +01:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-06-22 10:07:09 -07:00
2026-06-22 10:07:09 -07:00
2026-07-11 10:45:04 -07:00
2026-07-13 05:47:05 -07:00
2026-07-14 01:09:05 -07:00
2026-07-14 16:00:58 -07:00
2026-07-14 09:27:02 -07:00
2026-07-13 05:47:05 -07:00
2026-07-19 07:35:45 -07:00
2026-07-19 07:35:45 -07:00
2026-07-13 05:47:05 -07:00
2026-07-18 02:11:50 +01:00
2026-07-14 16:05:14 -07:00
2026-07-14 08:43:35 -07:00
2026-07-13 05:47:05 -07:00
2026-07-14 08:43:35 -07:00
2026-07-19 07:35:45 -07:00
2026-07-18 09:33:06 +01:00
2026-07-19 07:35:45 -07:00
2026-07-06 01:48:54 -07:00
2026-07-19 07:35:45 -07:00
2026-07-19 07:35:45 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-06-22 14:00:57 +08:00
2026-06-23 00:10:48 +08:00
2026-06-23 00:10:48 +08:00
2026-07-16 20:55:54 -07:00
2026-07-16 20:55:54 -07:00
2026-07-16 10:47:43 -07:00
2026-07-16 10:47:43 -07:00
2026-07-06 09:04:22 +01:00
2026-07-17 01:01:06 -07:00
2026-07-19 07:12:11 -07:00
2026-07-19 07:12:11 -07:00
2026-07-13 03:22:00 -07:00
2026-07-16 21:44:38 +05:30
2026-07-16 21:44:38 +05:30
2026-07-01 04:02:12 -05:00
2026-07-16 07:26:00 -07:00
2026-07-16 07:26:00 -07:00
2026-07-16 07:26:00 -07:00
2026-07-11 19:16:23 -07:00
2026-07-11 19:16:23 -07:00
2026-07-13 15:17:37 -07:00
2026-07-13 15:17:37 -07:00
2026-07-10 11:03:08 +01:00
2026-07-14 13:50:01 -07:00
2026-07-04 16:34:07 -04:00
2026-07-18 22:02:28 +01:00
2026-07-19 01:29:23 -07:00
2026-07-17 00:09:51 -07:00
2026-07-17 13:55:30 +01:00
2026-07-17 13:55:30 +01:00
2026-07-10 22:29:37 -05:00
2026-07-10 22:29:37 -05:00
2026-07-17 00:09:51 -07:00
2026-07-17 00:09:51 -07:00
2026-07-17 16:34:00 +01:00
2026-07-17 16:34:00 +01:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-18 17:43:56 +01:00
2026-06-23 01:50:57 +08:00
2026-07-09 15:40:30 +01:00
2026-07-09 22:58:03 +01:00
2026-07-13 05:47:05 -07:00
2026-07-11 16:22:22 +08:00
2026-07-11 16:22:22 +08:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-15 22:12:49 -07:00
2026-07-15 22:12:49 -07:00
2026-07-19 06:06:50 -07:00
2026-07-19 06:06:50 -07:00
2026-07-14 09:27:02 -07:00
2026-07-16 07:03:15 -07:00
2026-07-18 17:43:56 +01:00
2026-07-15 14:02:29 +01:00
2026-07-14 05:41:24 -07:00
2026-07-18 23:25:20 -07:00
2026-07-18 23:25:20 -07:00
2026-07-15 14:02:29 +01:00
2026-07-13 01:29:33 -07:00
2026-07-18 19:56:42 -07:00
2026-07-18 19:56:42 -07:00
2026-07-18 19:56:42 -07:00
2026-07-18 19:56:42 -07:00
2026-07-18 19:56:42 -07:00
2026-07-11 20:47:34 -07:00
2026-07-18 08:14:11 +01:00
2026-07-19 07:35:45 -07:00
2026-07-19 06:59:28 -07:00
2026-07-13 12:00:47 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-01 01:24:21 -07:00
2026-07-19 07:35:45 -07:00
2026-07-16 07:26:00 -07:00
2026-07-13 05:47:05 -07:00
2026-07-18 22:02:28 +01:00
2026-07-18 22:02:28 +01:00
2026-06-22 07:31:03 +08:00
2026-07-16 22:18:16 -07:00
2026-07-17 22:24:17 +01:00
2026-07-16 07:26:00 -07:00
2026-07-13 05:47:05 -07:00
2026-07-15 01:56:31 -07:00
2026-07-18 19:56:42 -07:00
2026-07-18 19:56:42 -07:00
2026-07-16 10:47:43 -07:00
2026-07-09 17:17:09 +01:00
2026-07-09 17:17:09 +01:00
2026-07-19 05:30:54 -07:00
2026-07-19 05:30:54 -07:00
2026-07-16 00:45:23 -07:00
2026-07-15 06:14:10 -07:00
2026-07-15 06:14:10 -07:00
2026-07-15 06:14:10 -07:00
2026-07-19 01:44:15 -06:00
2026-07-19 01:44:15 -06:00
2026-07-19 01:44:15 -06:00
2026-07-18 17:50:37 -06:00
2026-07-17 23:21:10 -06:00
2026-07-17 23:21:10 -06:00
2026-07-18 02:25:34 +01:00
2026-07-18 02:25:34 +01:00
2026-07-18 17:50:37 -06:00
2026-07-18 17:50:37 -06:00
2026-07-13 09:08:51 -07:00
2026-07-16 10:37:54 -07:00
2026-07-10 21:51:34 +01:00
2026-07-13 05:47:05 -07:00
2026-07-12 20:13:59 -07:00
2026-07-16 10:37:54 -07:00
2026-07-16 10:37:54 -07:00
2026-07-09 15:46:41 +01:00
2026-07-14 23:17:42 -07:00
2026-07-16 03:34:01 -07:00
2026-07-16 10:37:54 -07:00
2026-07-15 23:01:26 -07:00
2026-07-15 23:01:26 -07:00
2026-07-19 01:06:49 -07:00
2026-07-18 17:53:45 -07:00
2026-07-13 05:47:05 -07:00
2026-07-14 09:27:02 -07:00
2026-07-14 09:27:02 -07:00
2026-07-13 05:47:05 -07:00
2026-07-18 22:02:28 +01:00
2026-07-15 06:13:56 -07:00
2026-07-15 06:13:56 -07:00
2026-07-13 07:39:22 -07:00
2026-07-13 07:39:22 -07:00
2026-07-18 17:53:45 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 07:39:22 -07:00
2026-07-17 14:07:59 +01:00
2026-07-17 14:07:59 +01:00
2026-07-11 10:16:34 -07:00
2026-07-10 22:23:10 -07:00
2026-07-18 06:20:24 +01:00
2026-07-18 07:13:11 +01:00
2026-07-15 22:12:49 -07:00
2026-07-15 22:12:49 -07:00
2026-07-11 01:37:37 +01:00
2026-07-10 21:35:05 +01:00
2026-07-14 02:30:36 -07:00
2026-07-14 16:05:14 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-18 22:44:12 +01:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-11 10:16:34 -07:00
2026-07-13 05:47:05 -07:00
2026-07-09 22:58:03 +01:00
2026-07-03 19:55:00 -07:00
2026-07-13 22:20:50 -07:00
2026-07-13 07:39:22 -07:00
2026-07-14 16:05:14 -07:00
2026-07-14 16:05:14 -07:00
2026-07-11 10:16:34 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-14 09:27:02 -07:00
2026-07-19 07:35:45 -07:00
2026-07-14 09:27:02 -07:00
2026-07-19 07:35:45 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-12 22:37:21 -07:00
2026-07-12 22:37:21 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-12 10:51:38 +01:00
2026-07-16 10:32:05 -07:00
2026-07-16 10:32:05 -07:00
2026-07-18 17:43:56 +01:00
2026-07-16 04:26:38 -07:00
2026-07-19 07:35:45 -07:00
2026-07-17 22:24:17 +01:00
2026-07-18 01:00:23 +01:00
2026-07-18 01:00:23 +01:00
2026-07-12 18:16:15 -07:00
2026-07-12 18:16:15 -07:00
2026-07-13 05:47:05 -07:00
2026-07-17 01:01:06 -07:00
2026-07-17 01:01:06 -07:00
2026-07-16 19:24:41 -07:00
2026-07-16 19:24:41 -07:00
2026-07-16 11:13:42 -07:00
2026-07-18 17:53:45 -07:00
2026-07-18 17:53:45 -07:00
2026-07-13 15:35:32 -07:00
2026-07-19 04:07:15 -07:00
2026-07-19 04:07:15 -07:00
2026-07-04 16:45:07 -07:00
2026-07-13 05:47:05 -07:00
2026-07-16 19:24:41 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 11:41:27 -07:00
2026-07-13 11:41:27 -07:00
2026-07-18 11:46:53 +01:00
2026-07-19 00:52:21 +01:00
2026-07-17 22:24:17 +01:00
2026-07-18 01:00:23 +01:00
2026-07-18 20:17:51 -07:00
2026-07-18 20:17:51 -07:00
2026-07-13 05:47:05 -07:00
2026-07-15 20:51:57 -07:00
2026-07-18 19:59:58 +01:00
2026-07-18 19:59:58 +01:00
2026-07-19 02:53:19 -07:00
2026-07-19 02:53:19 -07:00
2026-07-18 02:11:50 +01:00
2026-07-13 05:47:05 -07:00
2026-07-18 17:43:59 -07:00
2026-07-18 01:00:23 +01:00
2026-07-14 09:27:02 -07:00
2026-07-13 05:47:05 -07:00
2026-07-10 13:20:45 -07:00
2026-07-12 18:16:15 -07:00
2026-07-12 18:16:15 -07:00
2026-07-17 22:24:21 +01:00
2026-07-18 19:24:12 -07:00
2026-07-11 03:16:59 -07:00
2026-07-11 03:16:59 -07:00
2026-07-19 07:35:45 -07:00
2026-07-19 02:50:47 -07:00
2026-07-18 23:00:00 +01:00
2026-07-18 20:17:51 -07:00
2026-07-13 12:00:47 -07:00
2026-07-15 22:40:00 -07:00
2026-07-19 00:58:43 -07:00
2026-07-19 05:30:54 -07:00
2026-07-15 20:51:57 -07:00
2026-07-15 20:51:57 -07:00
2026-07-15 20:51:57 -07:00
2026-07-15 20:51:57 -07:00
2026-07-19 07:35:45 -07:00
2026-07-19 07:35:45 -07:00
2026-07-16 01:43:53 -07:00
2026-07-19 07:35:45 -07:00
2026-07-19 01:06:49 -07:00
2026-07-17 22:24:17 +01:00
2026-07-13 07:39:22 -07:00
2026-07-19 00:58:43 -07:00
2026-07-16 20:55:54 -07:00
2026-06-24 09:49:25 +08:00
2026-07-13 12:00:47 -07:00
2026-07-19 08:37:00 -07:00
2026-07-19 05:30:54 -07:00
2026-07-19 05:30:54 -07:00
2026-07-13 12:00:47 -07:00
2026-07-12 10:05:50 +01:00
2026-07-13 05:47:05 -07:00
2026-07-18 07:13:11 +01:00
2026-07-14 09:27:02 -07:00
2026-07-18 01:00:23 +01:00
2026-07-13 01:29:33 -07:00
2026-07-18 03:50:50 +01:00
2026-07-09 05:55:34 -04:00
2026-07-15 20:51:57 -07:00
2026-07-13 07:39:22 -07:00
2026-07-05 10:57:19 -07:00
2026-07-13 01:29:33 -07:00
2026-07-18 03:50:50 +01:00
2026-07-16 09:12:50 -07:00
2026-07-15 20:51:57 -07:00
2026-07-18 21:09:38 -07:00
2026-07-19 07:35:45 -07:00
2026-07-19 07:35:45 -07:00
2026-07-16 21:38:45 -07:00
2026-07-19 00:52:21 +01:00
2026-07-14 05:23:29 -07:00
2026-07-18 05:57:45 +01:00
2026-07-17 17:43:22 +01:00
2026-07-17 17:43:22 +01:00
2026-07-18 05:57:45 +01:00
2026-07-17 17:43:22 +01:00
2026-07-12 22:18:10 -07:00
2026-07-13 05:47:05 -07:00
2026-07-10 19:18:47 -07:00
2026-07-16 21:38:45 -07:00
2026-07-18 02:11:50 +01:00
2026-07-15 12:54:12 -07:00
2026-07-19 07:35:45 -07:00
2026-07-11 22:04:38 -07:00
2026-07-18 23:00:00 +01:00
2026-07-18 02:11:50 +01:00
2026-07-15 13:35:15 -07:00
2026-07-19 03:58:59 -07:00
2026-07-19 03:58:59 -07:00
2026-07-13 12:00:47 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-17 00:09:51 -07:00
2026-07-06 22:52:22 +10:00
2026-07-18 18:29:24 +01:00
2026-07-14 22:08:58 -07:00
2026-07-06 06:45:55 +00:00
2026-07-18 22:44:06 +01:00
2026-07-18 22:44:06 +01:00
2026-07-13 00:06:18 -07:00
2026-07-13 00:06:18 -07:00
2026-07-13 11:32:57 -07:00
2026-07-16 23:48:37 -07:00
2026-07-10 15:23:24 +01:00
2026-07-10 15:23:24 +01:00
2026-07-17 14:44:03 +01:00
2026-07-17 14:44:03 +01:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-18 03:50:50 +01:00
2026-07-11 04:54:27 -07:00
2026-07-11 04:54:27 -07:00
2026-07-19 05:30:54 -07:00
2026-07-19 05:30:54 -07:00
2026-07-18 22:44:06 +01:00
2026-07-18 22:44:06 +01:00
2026-07-18 22:44:06 +01:00
2026-07-14 22:56:54 -07:00
2026-07-14 22:56:54 -07:00
2026-07-19 00:14:56 -06:00
2026-07-19 00:14:56 -06:00
2026-07-05 10:57:19 -07:00
2026-07-19 05:30:54 -07:00
2026-07-19 01:44:15 -06:00
2026-07-19 01:44:15 -06:00
2026-07-12 22:48:55 -07:00
2026-07-11 13:00:17 -07:00
2026-07-11 13:00:17 -07:00
2026-07-13 08:03:53 -07:00
2026-07-19 01:49:35 -07:00
2026-07-11 13:45:14 -07:00
2026-07-11 14:50:37 -07:00
2026-07-19 05:30:54 -07:00
2026-07-18 17:53:45 -07:00
2026-07-15 22:40:00 -07:00
2026-07-13 05:47:05 -07:00
2026-07-18 17:43:56 +01:00
2026-07-18 17:43:56 +01:00
2026-07-18 17:43:56 +01:00
2026-07-18 17:43:56 +01:00
2026-07-18 17:43:56 +01:00
2026-07-19 06:52:15 -07:00
2026-07-13 05:47:05 -07:00
2026-07-19 01:41:35 -07:00
2026-07-18 11:09:33 +01:00
2026-07-18 18:29:24 +01:00
2026-07-19 00:52:37 -07:00
2026-07-15 22:40:00 -07:00
2026-07-14 14:59:32 -07:00
2026-07-09 19:26:00 +05:30
2026-07-19 07:35:45 -07:00
2026-07-18 09:59:10 +01:00
2026-07-19 05:30:54 -07:00
2026-07-19 05:30:54 -07:00
2026-07-18 17:53:45 -07:00
2026-07-18 22:02:28 +01:00
2026-07-10 22:23:10 -07:00
2026-07-18 17:43:56 +01:00
2026-07-15 13:14:35 -07:00
2026-07-15 14:02:23 -07:00
2026-07-16 07:26:00 -07:00
2026-07-16 07:26:00 -07:00
2026-07-12 20:51:51 -07:00
2026-07-19 07:35:45 -07:00
2026-07-18 17:43:56 +01:00
2026-07-15 05:36:35 -07:00
2026-07-18 06:45:09 +01:00
2026-07-18 21:50:10 +01:00
2026-07-18 20:17:51 -07:00
2026-07-18 07:46:21 +01:00
2026-07-18 17:13:09 +01:00
2026-07-18 22:02:28 +01:00
2026-07-13 08:03:53 -07:00
2026-07-11 14:50:37 -07:00
2026-07-18 17:13:09 +01:00
2026-07-18 10:16:14 +01:00
2026-07-19 03:38:51 -07:00
2026-07-11 14:50:37 -07:00
2026-07-19 03:38:51 -07:00
2026-07-12 14:29:52 +01:00
2026-07-14 14:05:10 -07:00
2026-07-18 17:43:56 +01:00
2026-06-23 14:02:24 +01:00
2026-07-05 06:52:56 -07:00
2026-07-10 19:18:47 -07:00
2026-07-18 17:53:45 -07:00
2026-07-18 18:16:43 -07:00
2026-07-11 14:50:37 -07:00
2026-07-19 05:30:54 -07:00
2026-07-13 09:25:22 -06:00
2026-07-13 09:25:22 -06:00
2026-07-12 06:19:01 +01:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-17 15:36:09 +01:00
2026-07-18 17:13:09 +01:00
2026-07-18 17:13:09 +01:00
2026-07-17 15:36:09 +01:00
2026-07-18 20:30:56 +01:00
2026-07-19 01:19:56 -07:00
2026-07-11 14:50:37 -07:00
2026-07-13 05:47:05 -07:00
2026-07-14 21:24:40 -07:00
2026-07-14 21:24:40 -07:00
2026-07-07 10:52:53 +01:00
2026-07-18 17:43:59 -07:00
2026-07-18 17:43:59 -07:00
2026-07-14 14:59:32 -07:00
2026-07-19 02:53:19 -07:00
2026-07-14 18:12:22 -07:00
2026-07-18 17:13:09 +01:00
2026-07-11 14:50:37 -07:00
2026-07-01 06:14:00 -07:00
2026-07-01 06:14:00 -07:00
2026-07-16 14:11:33 -07:00
2026-07-13 05:47:05 -07:00
2026-07-16 04:30:06 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 03:22:00 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-16 14:11:33 -07:00
2026-07-16 14:11:33 -07:00
2026-07-16 14:11:33 -07:00
2026-07-16 04:30:06 -07:00
2026-07-16 04:30:06 -07:00
2026-07-12 14:29:52 +01:00
2026-07-16 06:48:56 -07:00
2026-07-11 14:50:37 -07:00
2026-07-15 17:01:42 -07:00
2026-07-13 12:00:47 -07:00
2026-07-19 01:19:56 -07:00
2026-07-19 01:19:56 -07:00
2026-07-19 01:19:56 -07:00
2026-07-16 14:11:33 -07:00
2026-07-17 10:37:36 -07:00
2026-07-17 10:37:36 -07:00
2026-07-18 17:13:09 +01:00
2026-07-19 05:30:54 -07:00
2026-07-11 14:50:37 -07:00
2026-07-12 14:29:52 +01:00
2026-07-11 20:47:34 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-19 01:06:49 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:17:24 -07:00
2026-07-19 01:06:49 -07:00
2026-07-19 01:06:49 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 05:47:05 -07:00
2026-07-11 20:47:34 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 03:22:00 -07:00
2026-07-18 17:43:56 +01:00
2026-07-16 07:47:32 -07:00
2026-07-16 01:43:53 -07:00
2026-07-17 15:36:09 +01:00
2026-07-06 10:25:22 -07:00
2026-07-17 10:34:29 +01:00
2026-07-10 19:18:47 -07:00
2026-07-19 05:30:54 -07:00
2026-07-15 22:40:00 -07:00
2026-07-17 00:09:51 -07:00
2026-07-12 09:45:30 +01:00
2026-07-10 22:29:37 -05:00
2026-07-14 09:27:02 -07:00
2026-07-10 22:29:37 -05:00
2026-07-11 00:12:08 -07:00
2026-07-19 08:52:01 -07:00
2026-07-19 08:52:01 -07:00
2026-07-19 08:52:01 -07:00
2026-07-18 17:43:56 +01:00
2026-07-18 07:13:11 +01:00
2026-07-19 01:49:35 -07:00
2026-07-14 02:41:55 -07:00
2026-07-14 02:41:55 -07:00