Enrico Weigelt, metux IT consult
8b8766d2b0
Xext: xf86bigfont: drop swapping request length fields
...
The request struct's length fields aren't used anymore - we have the
client->req_len field instead, which also is bigreq-compatible.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1639 >
(cherry picked from commit 776efd3cfc )
2026-01-25 10:39:59 -08:00
Enrico Weigelt, metux IT consult
4bb159e081
Xext: xcmisc: drop swapping request length fields
...
The request struct's length fields aren't used anymore - we have the
client->req_len field instead, which also is bigreq-compatible.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1639 >
(cherry picked from commit 405a227c73 )
2026-01-25 10:39:59 -08:00
Enrico Weigelt, metux IT consult
9cf90fd24f
Xext: vidmode: drop swapping request length fields
...
The request struct's length fields aren't used anymore - we have the
client->req_len field instead, which also is bigreq-compatible.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1639 >
(cherry picked from commit 65cb5e5575 )
2026-01-25 10:39:59 -08:00
Enrico Weigelt, metux IT consult
9a94514314
Xext: sync: drop swapping request length fields
...
The request struct's length fields aren't used anymore - we have the
client->req_len field instead, which also is bigreq-compatible.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1639 >
(cherry picked from commit bf6d132df6 )
2026-01-25 10:39:59 -08:00
Enrico Weigelt, metux IT consult
466cf2c112
Xext: shm: drop swapping request length fields
...
The request struct's length fields aren't used anymore - we have the
client->req_len field instead, which also is bigreq-compatible.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1639 >
(cherry picked from commit 75544f1f58 )
2026-01-25 10:39:59 -08:00
Enrico Weigelt, metux IT consult
b9044cd5c1
Xext: shape: drop swapping request length fields
...
The request struct's length fields aren't used anymore - we have the
client->req_len field instead, which also is bigreq-compatible.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1639 >
(cherry picked from commit a105c1f7a9 )
2026-01-25 10:39:59 -08:00
Enrico Weigelt, metux IT consult
41d02211d4
Xext: security: drop swapping request length fields
...
The request struct's length fields aren't used anymore - we have the
client->req_len field instead, which also is bigreq-compatible.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1639 >
(cherry picked from commit cd413baa4b )
2026-01-25 10:39:59 -08:00
Enrico Weigelt, metux IT consult
7b400043d1
Xext: saver: drop swapping request length fields
...
The request struct's length fields aren't used anymore - we have the
client->req_len field instead, which also is bigreq-compatible.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1639 >
(cherry picked from commit b52f5f9693 )
2026-01-25 10:39:59 -08:00
Enrico Weigelt, metux IT consult
6649b5d063
Xext: panoramiX: drop swapping request length fields
...
The request struct's length fields aren't used anymore - we have the
client->req_len field instead, which also is bigreq-compatible.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1639 >
(cherry picked from commit 23a8d9be71 )
2026-01-25 10:39:59 -08:00
Enrico Weigelt, metux IT consult
6e5d306e1f
Xext: dpms: drop swapping request length fields
...
The request struct's length fields aren't used anymore - we have the
client->req_len field instead, which also is bigreq-compatible.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1639 >
(cherry picked from commit fb40f65ee0 )
2026-01-25 10:39:59 -08:00
Enrico Weigelt, metux IT consult
fef7194223
Xext: bigreq: drop swapping request length fields
...
The request struct's length fields aren't used anymore - we have the
client->req_len field instead, which also is bigreq-compatible.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1639 >
(cherry picked from commit 4f56025812 )
2026-01-25 10:39:59 -08:00
Enrico Weigelt, metux IT consult
263456bfba
Xext: xtest: fix length checking with bigreq
...
The authorative source of the request frame size is client->req_len,
especially with big requests larger than 2^18 bytes.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1639 >
(cherry picked from commit 44c063d93d )
2026-01-25 10:39:58 -08:00
Enrico Weigelt, metux IT consult
5901e29ce9
Xext: vidmode: fix length checking with bigreq
...
The authorative source of the request frame size is client->req_len,
especially with big requests larger than 2^18 bytes.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1639 >
(cherry picked from commit c3e1f6fccf )
2026-01-25 10:39:58 -08:00
Enrico Weigelt, metux IT consult
904bf223ad
Xext: shape: fix length checking with bigreq
...
The authorative source of the request frame size is client->req_len,
especially with big requests larger than 2^18 bytes.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1639 >
(cherry picked from commit dab1299745 )
2026-01-25 10:39:58 -08:00
Enrico Weigelt, metux IT consult
7fe09f2c58
Xext: security: fix length checking with bigreq
...
The authorative source of the request frame size is client->req_len,
especially with big requests larger than 2^18 bytes.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1639 >
(cherry picked from commit 67a3319d73 )
2026-01-25 10:39:58 -08:00
Enrico Weigelt, metux IT consult
d9f8aad4b6
Xext: saver: fix length checking with bigreq
...
The authorative source of the request frame size is client->req_len,
especially with big requests larger than 2^18 bytes.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1639 >
(cherry picked from commit bacc4b1477 )
2026-01-25 10:39:58 -08:00
Enrico Weigelt, metux IT consult
b8473e5e34
Xext: geext: drop unused variable extEntry
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1596 >
(cherry picked from commit 6df7ba38ae )
2026-01-25 10:39:58 -08:00
Enrico Weigelt, metux IT consult
34f3752ab8
dix: unexport Ones()
...
It's not used by any module/driver, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1695 >
(cherry picked from commit 1642adec3b )
2026-01-25 10:39:57 -08:00
Enrico Weigelt, metux IT consult
3ffebb3dbd
Xext: xvmc: drop unused XvMCScreenInitProc
...
This pointer field isn't used anywhere, neither in Xorg nor in drivers.
No need to keep it around any longer.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1692 >
(cherry picked from commit f65520c4a7 )
2026-01-25 10:39:57 -08:00
Enrico Weigelt, metux IT consult
0bbed178b1
Xext: xf86bigfont: code styling cleanups
...
* tidy up the includes into logic order.
* beautify function prototype
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1600 >
(cherry picked from commit 866f3261c4 )
2026-01-25 10:39:56 -08:00
Enrico Weigelt, metux IT consult
fe6936a8e6
Xext: xf86bigfont: drop some dead code
...
There's some piece ifdef'ed code that doesn't serve any practical purpose.
Instead add a little comment telling why that funny way of dispatching
(based on request size) is necessary.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1600 >
(cherry picked from commit 7735c4462c )
2026-01-25 10:39:56 -08:00
Enrico Weigelt, metux IT consult
faf2e3dcc4
treewide: fix indentions got broke by recent commit
...
Commit f26f17c66a broke some indentions,
fixing them now.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1662 >
(cherry picked from commit c4481fc20f )
2026-01-25 10:39:56 -08:00
Enrico Weigelt, metux IT consult
8869bd31ae
treewide: mark pGC->ops->CopyArea() calls not using result as void
...
We alread have several of these calls, that aren't interested in result value,
explicitly casting to void. Fixing this up for the remaining ones.
This is helpful for the human reader as well as quality analysis tools.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1648 >
(cherry picked from commit f26f17c66a )
2026-01-25 10:39:56 -08:00
Enrico Weigelt, metux IT consult
6d8eb9aaba
xv: move XvVideoNotifyRec into xvmain.c
...
This struct is only used in xvmain.c, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1512 >
(cherry picked from commit 354f42b25c )
2026-01-25 10:39:55 -08:00
Enrico Weigelt, metux IT consult
f73f93f3b9
xv: move SCREEN_(PROLOGUE|EPILOGUE) into xvmain.c
...
These macros are only used in xvmain.c, so no need to keep
them exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1512 >
(cherry picked from commit 4d0b5833da )
2026-01-25 10:39:55 -08:00
Enrico Weigelt, metux IT consult
68ba498a74
xv: drop unused macro _XvBadEncoding
...
Couldn't find a trace where it actually had been used, so there doesn't
seem to be any reason while still keeping it around.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1512 >
(cherry picked from commit d7e481f200 )
2026-01-25 10:39:55 -08:00
Enrico Weigelt, metux IT consult
08fed90600
xv: drop unused define GLOBAL
...
This symbol isn't used anywhere, for at least 20 years now,
so no need to define it.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1512 >
(cherry picked from commit 6b445819dd )
2026-01-25 10:39:55 -08:00
Enrico Weigelt, metux IT consult
d0de360279
Xext: fix missing include of <X11/Xmd.h>
...
Including <X11/extensions/securproto.h> depends on <X11/Xmd.h> has been
included before.
Bug: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1719
Fixes: b30edf32 - fix missing includes of <X11/Xfuncproto.h>
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1617 >
(cherry picked from commit f94e280896 )
2026-01-25 10:39:55 -08:00
Enrico Weigelt, metux IT consult
8cde76988b
fix missing includes of <X11/Xfuncproto.h>
...
Several places using _X_ATTRIBUTE_PRINTF macro from X11/Xfuncproto.h
but missing to include it, so it depends on other headers whether it's
included by mere accident, which quickly causes trouble if include order
changes. Cleaning that up by adding explicit include statements.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1580 >
(cherry picked from commit b30edf326b )
2026-01-25 10:39:55 -08:00
Enrico Weigelt, metux IT consult
e6cdf08e9d
Xext: saver: little bit formatting cleanup
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1586 >
(cherry picked from commit fba3eefcc9 )
2026-01-25 10:39:55 -08:00
Enrico Weigelt, metux IT consult
361172fdf1
Xext: saver: drop New() macro
...
We can directly use calloc() as all other places do.
If we wanna have an convenient macro for struct allocation, that would be the
job of a separate patch queue and should be done consequently, treewide.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1586 >
(cherry picked from commit df38987656 )
2026-01-25 10:39:55 -08:00
Enrico Weigelt, metux IT consult
3c340f9524
xace: typesafe hook function for XACE_KEY_AVAIL
...
he generic XaceHook() call isn't typesafe (und unnecessarily slow).
Better add an explicit function, just like we already have for others.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1556 >
(cherry picked from commit facdaae4e8 )
2026-01-25 10:39:54 -08:00
Enrico Weigelt, metux IT consult
3678a119cf
xace: typesafe hook function for XACE_AUTH_AVAIL
...
he generic XaceHook() call isn't typesafe (und unnecessarily slow).
Better add an explicit function, just like we already have for others.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1556 >
(cherry picked from commit 591d95c79e )
2026-01-25 10:39:54 -08:00
Enrico Weigelt, metux IT consult
f8c916019b
xace: typesafe hook function for XACE_SCREENSAVER_ACCESS
...
he generic XaceHook() call isn't typesafe (und unnecessarily slow).
Better add an explicit function, just like we already have for others.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1556 >
(cherry picked from commit 305f2d59d8 )
2026-01-25 10:39:54 -08:00
Enrico Weigelt, metux IT consult
4e4e6d6f42
xace: typesafe hook function for XACE_SCREEN_ACCESS
...
he generic XaceHook() call isn't typesafe (und unnecessarily slow).
Better add an explicit function, just like we already have for others.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1556 >
(cherry picked from commit 51d8bcfc0d )
2026-01-25 10:39:54 -08:00
Enrico Weigelt, metux IT consult
dd0dcbe99d
xace: typesafe hook function for XACE_SERVER_ACCESS
...
he generic XaceHook() call isn't typesafe (und unnecessarily slow).
Better add an explicit function, just like we already have for others.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1556 >
(cherry picked from commit 47d6c3ad75 )
2026-01-25 10:39:54 -08:00
Enrico Weigelt, metux IT consult
65c3afbb61
xace: typesafe hook function for XACE_EXT_ACCESS
...
he generic XaceHook() call isn't typesafe (und unnecessarily slow).
Better add an explicit function, just like we already have for others.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1556 >
(cherry picked from commit 0f6bb23bc2 )
2026-01-25 10:39:54 -08:00
Enrico Weigelt, metux IT consult
9ca09ba08e
xace: typesafe hook function for XACE_CLIENT_ACCESS
...
The generic XaceHook() call isn't typesafe (und unnecessarily slow).
Better add an explicit function, just like we already have for others.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1556 >
(cherry picked from commit 922b7685dc )
2026-01-25 10:39:54 -08:00
Enrico Weigelt, metux IT consult
cb6cb09e04
xace: typesafe hook function for XACE_RECEIVE_ACCESS
...
The generic XaceHook() call isn't typesafe (und unnecessarily slow).
Better add an explicit function, just like we already have for others.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1556 >
(cherry picked from commit 3dfe00d5e0 )
2026-01-25 10:39:54 -08:00
Enrico Weigelt, metux IT consult
55605fc107
xace: typesafe hook function for XACE_SEND_ACCESS
...
The generic XaceHook() call isn't typesafe (und unnecessarily slow).
Better add an explicit function, just like we already have for others.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1556 >
(cherry picked from commit 67e468c8bd )
2026-01-25 10:39:54 -08:00
Enrico Weigelt, metux IT consult
e4465f2cdb
xace: typesafe hook function for XACE_DEVICE_ACCESS
...
The generic XaceHook() call isn't typesafe (und unnecessarily slow).
Better add an explicit function, just like we already have for others.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1556 >
(cherry picked from commit 9524ffee89 )
2026-01-25 10:39:54 -08:00
Enrico Weigelt, metux IT consult
bd324c0c2a
xace: typesafe hook function for XACE_RESOURCE_ACCESS
...
The generic XaceHook() call isn't typesafe (und unnecessarily slow).
Better add an explicit function, just like we already have for others.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1556 >
(cherry picked from commit ae3c573337 )
2026-01-25 10:39:54 -08:00
Enrico Weigelt, metux IT consult
9af1201dad
Xace: dont install xace.h and xacestr.h anymore
...
These aren't used by any drivers, so no need to keep them installed.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1556 >
(cherry picked from commit 22a3014c50 )
2026-01-25 10:39:54 -08:00
Enrico Weigelt, metux IT consult
7504bd59df
Xext: drop _PANORAMIX_SERVER
...
This used to be for panoramiXproto.h, but it doesn't look at it anymore,
so no need to keep it around.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1551 >
(cherry picked from commit 9c95347244 )
2026-01-25 10:39:54 -08:00
Enrico Weigelt, metux IT consult
401c1c2448
Xext: securitysrv.h: drop hacks for including secur.h
...
The secur.h doesn't need the symbols defined here (eg. Status or Display)
anymore, so no need to keep it around anymore.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1550 >
(cherry picked from commit c77bcb9f7f )
2026-01-25 10:39:54 -08:00
Enrico Weigelt, metux IT consult
4c9a898d2c
fix including <sys/mman.h>
...
Make sure everybody who needs stuff from <sys/mman.h> actually includes it,
and dropped the include from xf86_OSlib.h.
Check for all symbols defined by Open Group spec.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1412 >
(cherry picked from commit e2fa0d2ae0 )
2026-01-25 10:39:52 -08:00
Enrico Weigelt, metux IT consult
ba89e22e7e
os: unexport MakeClientGrabPervious() and MakeClientGrabImpervious()
...
Not used by any drivers, so no need to export them.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1384 >
(cherry picked from commit 4c1795701c )
2026-01-19 12:48:30 -08:00
Enrico Weigelt, metux IT consult
83936985d9
rename remaining RT_* defines to X11_RESTYPE_*
...
Since we already had to rename some of them, in order to fix name clashes
on win32, it's now time to rename all the remaining ones.
The old ones are still present as define's to the new ones, just for
backwards compatibility.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1355 >
(cherry picked from commit 85d4bd0dba )
2026-01-19 12:48:30 -08:00
Enrico Weigelt, metux IT consult
ca361681f8
prevent name clash on Windows w/ RT_* defines
...
Windows' native headers using some our RT_* define's names for other things.
Since the naming isn't very nice anyways, introducing some new ones
(X11_RESTYPE_NONE, X11_RESTYPE_FONT, X11_RESTYPE_CURSOR) and define the old
ones as an alias to them, in case some out-of-tree code still uses them.
With thins change, we don't need to be so extremely careful about include
ordering and have explicit #undef's in order to prevent name clashes on
Win32 targets.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1355 >
(cherry picked from commit 232cad9ec3 )
2026-01-19 12:48:30 -08:00
Enrico Weigelt, metux IT consult
e702149e99
include: move busfault.h out of public include dir
...
this header is isn't public, so it's more appropriate, where the actual
code is, which is the os/ directory.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1337 >
(cherry picked from commit dae76bbaaf )
2026-01-19 12:32:26 -08:00