texlive[69310] Master/texmf-dist: l3 (5jan24)

commits+karl at tug.org commits+karl at tug.org
Fri Jan 5 22:44:47 CET 2024


Revision: 69310
          https://tug.org/svn/texlive?view=revision&revision=69310
Author:   karl
Date:     2024-01-05 22:44:47 +0100 (Fri, 05 Jan 2024)
Log Message:
-----------
l3 (5jan24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md
    trunk/Master/texmf-dist/doc/latex/l3backend/README.md
    trunk/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md
    trunk/Master/texmf-dist/doc/latex/l3experimental/README.md
    trunk/Master/texmf-dist/doc/latex/l3experimental/l3benchmark/l3benchmark.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw-code.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/l3graphics/l3graphics.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/l3opacity/l3opacity.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/l3sys-shell/l3sys-shell.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md
    trunk/Master/texmf-dist/doc/latex/l3kernel/README.md
    trunk/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3doc.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.csv
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/source3.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex
    trunk/Master/texmf-dist/dvips/l3backend/l3backend-dvips.pro
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend.ins
    trunk/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.ins
    trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.ins
    trunk/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.ins
    trunk/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.ins
    trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str.ins
    trunk/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.ins
    trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.ins
    trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.ins
    trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3.ins
    trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3bitset.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3color.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-functions.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-symbolic.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-types.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3text.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-build.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
    trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def
    trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def
    trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def
    trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
    trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.lua
    trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
    trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
    trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
    trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx
    trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.lua
    trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3debug.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def

Removed Paths:
-------------
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3bitset.sty

Modified: trunk/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,6 +6,11 @@
 
 ## [Unreleased]
 
+## [2024-01-04]
+
+### Changed
+- Documentation tweaks
+
 ## [2023-11-09]
 
 ### Changed
@@ -133,7 +138,7 @@
 
 ## [2021-08-04]
 
-## Changed
+### Changed
 - Only use `pdfmanagement` module if active
 
 ## [2021-07-12]
@@ -316,7 +321,8 @@
 - Include `l3backend` in file names
 - Moved backend code to internal for each 'parent' module
 
-[Unreleased]: https://github.com/latex3/latex3/compare/2023-11-09...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2024-01-04...HEAD
+[2024-01-04]: https://github.com/latex3/latex3/compare/2023-11-09...2024-01-04
 [2023-11-09]: https://github.com/latex3/latex3/compare/2023-11-04...2023-11-09
 [2023-11-04]: https://github.com/latex3/latex3/compare/2023-10-23...2023-11-04
 [2023-10-23]: https://github.com/latex3/latex3/compare/2023-10-10...2023-10-23

Modified: trunk/Master/texmf-dist/doc/latex/l3backend/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3backend/README.md	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/doc/latex/l3backend/README.md	2024-01-05 21:44:47 UTC (rev 69310)
@@ -1,7 +1,7 @@
 LaTeX3 Backend Drivers
 ======================
 
-Release 2023-11-09
+Release 2024-01-04
 
 This package forms parts of `expl3`, and contains the code used to interface
 with backends (drivers) across the `expl3` codebase. The functions here are
@@ -11,6 +11,6 @@
 
 -----
 
-<p>Copyright (C) 2019-2023 The LaTeX Project <br />
+<p>Copyright (C) 2019-2024 The LaTeX Project <br />
 <a href="http://latex-project.org/">http://latex-project.org/</a> <br />
 All rights reserved.</p>

Modified: trunk/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md	2024-01-05 21:44:47 UTC (rev 69310)
@@ -7,6 +7,15 @@
 
 ## [Unreleased]
 
+## [2024-01-04]
+
+### Changed
+- Apply transformation matrix to drawing shifts
+
+### Fixed
+- Remove a stray scaling in `\draw_path_rectangle:nn` (issue \#1386)
+- Correct baseline calculations in some `l3draw` cases (issue \#1400)
+
 ## [2023-12-08]
 
 ### Added
@@ -293,7 +302,8 @@
 - New `l3color` module using `xcolor`-like expression syntax
 - New `l3draw` module, based on `pgf` layer of the TikZ system
 
-[Unreleased]: https://github.com/latex3/latex3/compare/2023-12-08...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2024-01-04...HEAD
+[2024-01-04]: https://github.com/latex3/latex3/compare/2023-12-08...2024-01-04
 [2023-12-08]: https://github.com/latex3/latex3/compare/2023-11-01...2023-12-08
 [2023-11-01]: https://github.com/latex3/latex3/compare/2023-10-10...2023-11-01
 [2023-10-10]: https://github.com/latex3/latex3/compare/2023-05-11...2023-10-10

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3experimental/README.md	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/doc/latex/l3experimental/README.md	2024-01-05 21:44:47 UTC (rev 69310)
@@ -1,7 +1,7 @@
 Experimental LaTeX3 Concepts
 ============================
 
-Release 2023-12-08
+Release 2024-01-04
 
 Overview
 --------
@@ -124,6 +124,6 @@
 
 -----
 
-<p>Copyright (C) 1998-2004,2008-2012,2014-2023 The LaTeX Project <br />
+<p>Copyright (C) 1998-2004,2008-2012,2014-2024 The LaTeX Project <br />
 <a href="http://latex-project.org/">http://latex-project.org/</a> <br />
 All rights reserved.</p>

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/l3benchmark/l3benchmark.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw-code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/l3graphics/l3graphics.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/l3opacity/l3opacity.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/l3sys-shell/l3sys-shell.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md	2024-01-05 21:44:47 UTC (rev 69310)
@@ -7,17 +7,35 @@
 
 ## [Unreleased]
 
+## [2024-01-04]
+
+### Added
+- Documentation for `\bitset_show_named_index:N` (issue \#1372)
+- `\bitset_log_named_index:N`
+- `\tl_build_get_intermediate:NN`
+- Support for `.default:n` values for the `unknown` handler (see issue \#67)
+
+### Changed
+- Improved method to suppress `l3bitset` where required
+- Clarify behavior of `\tl_if_novalue:n(TF)` (see issue \#1402)
+
+### Deprecated
+- `\tl_build_get:NN` in favor of `\tl_build_get_intermediate:NN`
+
+### Fixed
+- Handling of `documented-as` variants in `l3doc` indexing
+  (see issue \#1345)
+- Missing trailing `TF` in single variant of conditional functions (issue \#1398)
+
 ## [2023-12-11]
 
-## [2023-12-12]
+### Changed
+- Use keyval handler for `l3doc` class options
 
 ### Fixed
 - Support for deprecated `pdf` module functions (issue \#1373)
 - Generate stub `l3bitset` for transitional support
 
-### Changed
-- Use keyval handler for `l3doc` class options
-
 ## [2023-12-08]
 
 ### Added
@@ -35,7 +53,7 @@
 - Documentation for `\c_nan_fp`
 - `\str_case_e:en(TF)`
 
-### Changes
+### Changed
 - Speed up `\str_(g)set:Nn`, `\str_const:Nn`, `\str_(g)put_left:Nn`,
   and `\str_(g)put_right:Nn`
 
@@ -1617,9 +1635,9 @@
 - Step functions have been added for dim variables,
   e.g. `\dim_step_inline:nnnn`
 
-[Unreleased]: https://github.com/latex3/latex3/compare/2023-12-11...HEAD
-[2023-12-11]: https://github.com/latex3/latex3/compare/2023-12-12...2023-12-11
-[2023-12-12]: https://github.com/latex3/latex3/compare/2023-12-08...2023-12-12
+[Unreleased]: https://github.com/latex3/latex3/compare/2024-01-04...HEAD
+[2024-01-04]: https://github.com/latex3/latex3/compare/2023-12-11...2024-01-04
+[2023-12-11]: https://github.com/latex3/latex3/compare/2023-12-08...2023-12-11
 [2023-12-08]: https://github.com/latex3/latex3/compare/2023-11-09...2023-12-08
 [2023-11-09]: https://github.com/latex3/latex3/compare/2023-11-01...2023-11-09
 [2023-11-01]: https://github.com/latex3/latex3/compare/2023-10-23...2023-11-01

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/README.md	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/README.md	2024-01-05 21:44:47 UTC (rev 69310)
@@ -1,7 +1,7 @@
 LaTeX3 Programming Conventions
 ==============================
 
-Release 2023-12-11
+Release 2024-01-04
 
 Overview
 --------
@@ -30,6 +30,7 @@
 particular, the functionality equivalent to the following pdfTeX primitives must
 be available
 
+- `\ifincsname`
 - `\ifpdfprimitive`
 - `\pdfcreationdate`
 - `\pdfelapsedtime`
@@ -90,6 +91,6 @@
 
 -----
 
-<p>Copyright (C) 1998-2012,2015-2023 The LaTeX Project <br />
+<p>Copyright (C) 1998-2012,2015-2024 The LaTeX Project <br />
 <a href="http://latex-project.org/">http://latex-project.org/</a> <br />
 All rights reserved.</p>

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 
 File: interface3.tex
 
-Copyright (C) 1990-2011,2017-2023 The LaTeX Project
+Copyright (C) 1990-2011,2017-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of the
 LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -29,7 +29,7 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
 % This document typesets the LaTeX3 interface descriptions a single document.
-% This produces quite a large file (more than 170 pages currently).
+% This produces quite a large file (more than 360 pages as of Dec 2023).
 %
 % There is also a full version of the sources (source3.tex) which additionally
 % also typesets the command implementations.

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt	2024-01-05 21:44:47 UTC (rev 69310)
@@ -68,6 +68,7 @@
 \text_titlecase:nn                       2023-07-08
 \tl_build_clear:N                        2023-10-18
 \tl_build_gclear:N                       2023-10-18
+\tl_build_get:NN                         2023-12-14
 \tl_case:cn                              2023-05-23
 \tl_case:cnF                             2023-05-23
 \tl_case:cnT                             2023-05-23

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.csv
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.csv	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.csv	2024-01-05 21:44:47 UTC (rev 69310)
@@ -12,7 +12,7 @@
 ampersand,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2018-05-12,2018-05-12,
 apfs,apfontspec,Qing Lee,https://github.com/CTeX-org/apfontspec,https://github.com/CTeX-org/apfontspec.git,https://github.com/CTeX-org/apfontspec/issues,2020-05-17,2020-05-17,
 arch,archaeologie,Lukas C. Bossert,http://www.biblatex-archaeologie.de,https://github.com/LukasCBossert/biblatex-archaeologie.git,https://github.com/LukasCBossert/biblatex-archaeologie/issues,2017-03-24,2017-03-24,
-arsenal,arsenal,Boris Veytsman,https://github.com/borisveytsman/arsenal,https://github.com/borisveytsman/arsenal,https://github.com/borisveytsman/arsenal/issues
+arsenal,arsenal,Boris Veytsman,https://github.com/borisveytsman/arsenal,https://github.com/borisveytsman/arsenal,https://github.com/borisveytsman/arsenal/issues,2023-09-04,2023-09-04,
 array,hobby,Andrew Stacey,https://github.com/loopspace/hobby,https://github.com/loopspace/hobby,https://github.com/loopspace/hobby/issues,2013-03-16,2020-10-29,
 atsign,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2018-05-12,2018-05-12,
 avm,langsci-avm,Felix Kopecky,https://ctan.org/pkg/langsci-avm,https://github.com/langsci/langsci-avm,https://github.com/langsci/langsci-avm/issues,2020-03-11,2020-03-11,
@@ -123,7 +123,7 @@
 ior,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
 iot,iot,Island of TeX,https://islandoftex.gitlab.io,https://gitlab.com/islandoftex/texmf,https://gitlab.com/groups/islandoftex/texmf/-/issues,2023-07-18,2023-07-18,
 iow,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
-iwonamath,iwonamath,Boris Veytsman,https://github.com/borisveytsman/iwonamath,https://github.com/borisveytsman/iwonamath,https://github.com/borisveytsman/iwonamath/issues
+iwonamath,iwonamath,Boris Veytsman,https://github.com/borisveytsman/iwonamath,https://github.com/borisveytsman/iwonamath,https://github.com/borisveytsman/iwonamath/issues,2023-09-04,2023-09-04,
 jiazhu,jiazhu,Qing Lee,https://github.com/CTeX-org/ctex-kit,https://github.com/CTeX-org/ctex-kit.git,https://github.com/CTeX-org/ctex-kit/issues,2020-05-17,2020-05-17,
 job,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2021-04-23,2021-04-23,
 kernel,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 
 File: l3styleguide.tex
 
-Copyright (C) 2011,2012,2014-2023 The LaTeX Project
+Copyright (C) 2011,2012,2014-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of the
 LaTeX Project Public License (LPPL), either version 1.3c of this

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 
 File: l3syntax-changes.tex
 
-Copyright (C) 2011,2012,2017-2023 The LaTeX Project
+Copyright (C) 2011,2012,2017-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of the
 LaTeX Project Public License (LPPL), either version 1.3c of this

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 
 File: l3term-glossary.tex
 
-Copyright (C) 2018-2023 The LaTeX Project
+Copyright (C) 2018-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of the
 LaTeX Project Public License (LPPL), either version 1.3c of this

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/source3.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 
 File: source3.tex
 
-Copyright (C) 1990-2012,2017-2023 The LaTeX Project
+Copyright (C) 1990-2012,2017-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of the
 LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -29,7 +29,7 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
 % This document typesets the LaTeX3 sources as a single document.
-% This produces quite a large file (more than 780 pages).
+% This produces quite a large file (more than 1670 pages as of Dec 2023).
 %
 % There is also a shorter version (interface3.tex) that only typesets the
 % command % interface descriptions.

Modified: trunk/Master/texmf-dist/dvips/l3backend/l3backend-dvips.pro
===================================================================
--- trunk/Master/texmf-dist/dvips/l3backend/l3backend-dvips.pro	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/dvips/l3backend/l3backend-dvips.pro	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% l3backend-header.dtx  (with options: `header,dvips')
 %% 
-%% Copyright (C) 2019-2023 The LaTeX Project
+%% Copyright (C) 2019-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -100,8 +100,8 @@
       pdf.dest.y pdf.tmpc mul add
       pdf.dev.x add
     pdf.dest.x pdf.tmpb mul
-     pdf.dest.y pdf.tmpd mul add
-     pdf.dev.y add
+      pdf.dest.y pdf.tmpd mul add
+      pdf.dev.y add
   }
     def
 /pdf.bordertracking false def
@@ -249,47 +249,47 @@
       {
         counttomark /pdf.count exch def
           {
-           pdf.count 0 eq { exit } if
-           counttomark 2 roll
-           1 index /Rect eq
-             {
-               dup 4 array copy
-               dup dup
-                 1 get
-                 pdf.outerbox pdf.rect.ht
-                 pdf.linkmargin 2 mul add sub
-                 3 exch put
-               dup
-                 pdf.outerbox 2 get
-                 pdf.linkmargin add
-                 2 exch put
-               dup dup
-                 3 get
-                 pdf.outerbox pdf.rect.ht
-                 pdf.linkmargin 2 mul add add
-                 1 exch put
-               /pdf.currentrect exch  def
-               pdf.breaklink.write
-                 {
-                   pdf.currentrect
-                   dup
-                     pdf.outerbox 0 get
-                     pdf.linkmargin sub
-                     0 exch put
-                   dup
-                     pdf.outerbox 2 get
-                     pdf.linkmargin add
-                     2 exch put
-                   dup dup
-                     1 get
-                     pdf.baselineskip add
-                     1 exch put
-                   dup dup
-                     3 get
-                     pdf.baselineskip add
-                     3 exch put
-                   /pdf.currentrect exch def
-                   pdf.breaklink.write
+            pdf.count 0 eq { exit } if
+            counttomark 2 roll
+            1 index /Rect eq
+              {
+                dup 4 array copy
+                dup dup
+                  1 get
+                  pdf.outerbox pdf.rect.ht
+                  pdf.linkmargin 2 mul add sub
+                  3 exch put
+                dup
+                  pdf.outerbox 2 get
+                  pdf.linkmargin add
+                  2 exch put
+                dup dup
+                  3 get
+                  pdf.outerbox pdf.rect.ht
+                  pdf.linkmargin 2 mul add add
+                  1 exch put
+                /pdf.currentrect exch def
+                pdf.breaklink.write
+                  {
+                    pdf.currentrect
+                    dup
+                      pdf.outerbox 0 get
+                      pdf.linkmargin sub
+                      0 exch put
+                    dup
+                      pdf.outerbox 2 get
+                      pdf.linkmargin add
+                      2 exch put
+                    dup dup
+                      1 get
+                      pdf.baselineskip add
+                      1 exch put
+                    dup dup
+                      3 get
+                      pdf.baselineskip add
+                      3 exch put
+                    /pdf.currentrect exch def
+                    pdf.breaklink.write
                   }
                 1 index 3 get
                 pdf.linkmargin 2 mul add
@@ -296,36 +296,36 @@
                 pdf.outerbox pdf.rect.ht add
                 2 index 1 get sub
                 pdf.baselineskip div round cvi 1 sub
-                exch
-              repeat
-              pdf.currentrect
-              dup
-                pdf.outerbox 0 get
-                pdf.linkmargin sub
-                0 exch put
-              dup dup
-                1 get
-                pdf.baselineskip add
-                1 exch put
-              dup dup
-                3 get
-                pdf.baselineskip add
-                3 exch put
-              dup 2 index 2 get  2 exch put
-              /pdf.currentrect exch def
-              pdf.breaklink.write
-              SDict /pdf.pdfmark.good false put
-              exit
-            }
-            { pdf.count 2 sub /pdf.count exch def }
-          ifelse
-        }
-      loop
-    }
-  if
-  /ANN
-}
-  def
+                  exch
+                repeat
+                pdf.currentrect
+                dup
+                  pdf.outerbox 0 get
+                  pdf.linkmargin sub
+                  0 exch put
+                dup dup
+                  1 get
+                  pdf.baselineskip add
+                  1 exch put
+                dup dup
+                  3 get
+                  pdf.baselineskip add
+                  3 exch put
+                dup 2 index 2 get  2 exch put
+                /pdf.currentrect exch def
+                pdf.breaklink.write
+                SDict /pdf.pdfmark.good false put
+                exit
+              }
+              { pdf.count 2 sub /pdf.count exch def }
+            ifelse
+          }
+        loop
+      }
+    if
+    /ANN
+  }
+    def
 /pdf.breaklink.write
   {
     counttomark 1 sub

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3backend-basics.dtx
 %
-% Copyright (C) 2019-2023 The LaTeX Project
+% Copyright (C) 2019-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \textsf{l3backend-basics} package\\ Backend basics^^A
+%   The \pkg{l3backend-basics} module\\ Backend basics^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-11-09}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -70,27 +70,27 @@
 %    \begin{macrocode}
 \ProvidesExplFile
 %<*dvipdfmx>
-  {l3backend-dvipdfmx.def}{2023-11-09}{}
+  {l3backend-dvipdfmx.def}{2024-01-04}{}
   {L3 backend support: dvipdfmx}
 %</dvipdfmx>
 %<*dvips>
-  {l3backend-dvips.def}{2023-11-09}{}
+  {l3backend-dvips.def}{2024-01-04}{}
   {L3 backend support: dvips}
 %</dvips>
 %<*dvisvgm>
-  {l3backend-dvisvgm.def}{2023-11-09}{}
+  {l3backend-dvisvgm.def}{2024-01-04}{}
   {L3 backend support: dvisvgm}
 %</dvisvgm>
 %<*luatex>
-  {l3backend-luatex.def}{2023-11-09}{}
+  {l3backend-luatex.def}{2024-01-04}{}
   {L3 backend support: PDF output (LuaTeX)}
 %</luatex>
 %<*pdftex>
-  {l3backend-pdftex.def}{2023-11-09}{}
+  {l3backend-pdftex.def}{2024-01-04}{}
   {L3 backend support: PDF output (pdfTeX)}
 %</pdftex>
 %<*xetex>
-  {l3backend-xetex.def}{2023-11-09}{}
+  {l3backend-xetex.def}{2024-01-04}{}
   {L3 backend support: XeTeX}
 %</xetex>
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3backend-box.dtx
 %
-% Copyright (C) 2019-2023 The LaTeX Project
+% Copyright (C) 2019-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \textsf{l3backend-box} package\\ Backend box support^^A
+%   The \pkg{l3backend-box} package\\ Backend box support^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-11-09}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -118,9 +118,9 @@
           { \fp_eval:n { round ( -(#2) , 5 ) } } ~
         rotate
       }
-   \__kernel_backend_align_end:
-   \box_use:N #1
-   \__kernel_backend_scope_end:
+    \__kernel_backend_align_end:
+    \box_use:N #1
+    \__kernel_backend_scope_end:
   }
 %    \end{macrocode}
 % \end{macro}
@@ -217,8 +217,8 @@
         \c_space_tl
         \fp_use:N \l_@@_backend_cos_fp
       }
-   \box_use:N #1
-   \__kernel_backend_scope_end:
+    \box_use:N #1
+    \__kernel_backend_scope_end:
   }
 \fp_new:N \l_@@_backend_cos_fp
 \fp_new:N \l_@@_backend_sin_fp

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3backend-color.dtx
 %
-% Copyright (C) 2019-2023 The LaTeX Project
+% Copyright (C) 2019-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \textsf{l3backend-color} package\\ Backend color support^^A
+%   The \pkg{l3backend-color} module\\ Backend color support^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-11-09}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -169,7 +169,6 @@
 %     \@@_backend_select:n
 %   }
 % \begin{macro}{\@@_backend_reset:}
-% \begin{macro}{color.sc}
 %    Push the data to the stack. In the case of \texttt{dvips} also saves the
 %    drawing color in raw PostScript. The |spot| model is for handling data
 %    in classical format.
@@ -194,7 +193,6 @@
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
-% \end{macro}
 %
 %    \begin{macrocode}
 %</dvips|dvisvgm>
@@ -467,9 +465,9 @@
 %    \begin{macrocode}
 \cs_new:Npn \@@_backend_separation_init:nnn #1#2#3
   {
-   \exp_args:Ne \@@_backend_separation_init:nnnn
-     { \@@_backend_separation_init_count:n {#2} }
-     {#1} {#2} {#3}
+    \exp_args:Ne \@@_backend_separation_init:nnnn
+      { \@@_backend_separation_init_count:n {#2} }
+      {#1} {#2} {#3}
   }
 \cs_new:Npn \@@_backend_separation_init_count:n #1
   { \int_eval:n { 0 \@@_backend_separation_init_count:w #1 ~ \s_@@_stop } }
@@ -531,15 +529,15 @@
 %    \begin{macrocode}
 \cs_new:Npn \@@_backend_separation_init:nw #1#2 ~ #3 ~ #4 \s_@@_stop
   {
-     #2 ~ #3 ~
-     2 ~ index ~ 2 ~ index ~ lt ~
-       { ~ pop ~ exch ~ pop ~ } ~
-       { ~
-         2 ~ index ~ 1 ~ index ~ gt ~
-           { ~ exch ~ pop ~ exch ~ pop ~ } ~
-           { ~ pop ~ pop ~ } ~
-         ifelse ~
-       }
+    #2 ~ #3 ~
+    2 ~ index ~ 2 ~ index ~ lt ~
+      { ~ pop ~ exch ~ pop ~ } ~
+      { ~
+        2 ~ index ~ 1 ~ index ~ gt ~
+          { ~ exch ~ pop ~ exch ~ pop ~ } ~
+          { ~ pop ~ pop ~ } ~
+        ifelse ~
+      }
     ifelse ~
     #1 ~ 1 ~ roll ~
     \tl_if_blank:nF {#4}
@@ -795,9 +793,9 @@
           {
             /Lab ~
             <<
-             /WhitePoint ~
-               [ \tl_use:c { c_@@_model_whitepoint_CIELAB_ #1 _tl } ]
-             /Range ~ [ \c_@@_model_range_CIELAB_tl ]
+              /WhitePoint ~
+                [ \tl_use:c { c_@@_model_whitepoint_CIELAB_ #1 _tl } ]
+              /Range ~ [ \c_@@_model_range_CIELAB_tl ]
             >>
           }
       }
@@ -841,7 +839,7 @@
             ]
         }
         { {#3} }
-     }
+      }
     \use:e
       {
         \pdf_object_new:n { color \int_use:N \g_@@_model_int }
@@ -1207,14 +1205,14 @@
     \__kernel_backend_scope:n
       {
         stroke =
-         "
-           rgb
-             (
-               #1 \c_percent_str ,
-               #2 \c_percent_str ,
-               #3 \c_percent_str
-             )
-         "
+          "
+            rgb
+              (
+                #1 \c_percent_str ,
+                #2 \c_percent_str ,
+                #3 \c_percent_str
+              )
+          "
       }
   }
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3backend-draw.dtx
 %
-% Copyright (C) 2019-2023 The LaTeX Project
+% Copyright (C) 2019-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \textsf{l3backend-draw} package\\ Backend drawing support^^A
+%   The \pkg{l3backend-draw} package\\ Backend drawing support^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-11-09}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -141,11 +141,11 @@
   }
 \cs_new_protected:Npn \@@_backend_rectangle:nnnn #1#2#3#4
   {
-     \@@_backend_literal:e
-       {
-         \dim_to_decimal_in_bp:n {#4} ~ \dim_to_decimal_in_bp:n {#3} ~
-         \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~
-         moveto~dup~0~rlineto~exch~0~exch~rlineto~neg~0~rlineto~closepath
+    \@@_backend_literal:e
+      {
+        \dim_to_decimal_in_bp:n {#4} ~ \dim_to_decimal_in_bp:n {#3} ~
+        \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~
+        moveto~dup~0~rlineto~exch~0~exch~rlineto~neg~0~rlineto~closepath
       }
   }
 \cs_new_protected:Npn \@@_backend_curveto:nnnnnn #1#2#3#4#5#6
@@ -157,7 +157,7 @@
         \dim_to_decimal_in_bp:n {#5} ~ \dim_to_decimal_in_bp:n {#6} ~
         curveto
       }
- }
+  }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -451,10 +451,10 @@
         \dim_to_decimal_in_bp:n {#5} ~ \dim_to_decimal_in_bp:n {#6} ~
         c
       }
- }
+  }
 \cs_new_protected:Npn \@@_backend_rectangle:nnnn #1#2#3#4
   {
-     \@@_backend_literal:e
+    \@@_backend_literal:e
       {
         \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~
         \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~
@@ -698,7 +698,7 @@
           { \fp_eval:n { atand ( #3 , #2 ) } }
           { \fp_eval:n { atand ( #4 , #1 ) } }
       }
-         #5
+        #5
   }
 \cs_new_protected:Npn \@@_backend_cm_decompose_auxii:nnnnN #1#2#3#4#5
   {
@@ -1022,8 +1022,8 @@
   {
     \__kernel_backend_scope:n
       {
-       transform =
-         " matrix ( #1 , #2 , #3 , #4 , 0pt , 0pt ) "
+        transform =
+          " matrix ( #1 , #2 , #3 , #4 , 0pt , 0pt ) "
       }
   }
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3backend-graphics.dtx
 %
-% Copyright (C) 2019-2023 The LaTeX Project
+% Copyright (C) 2019-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \textsf{l3backend-graphics} package\\ Backend graphics support^^A
+%   The \pkg{l3backend-graphics} module\\ Backend graphics support^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-11-09}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -83,7 +83,7 @@
 %<*dvips>
 %    \end{macrocode}
 %
-% \begin{variable}{\l_graphics_search_ext_seq}
+% \begin{variable}[no-user-doc]{\l_graphics_search_ext_seq}
 %    \begin{macrocode}
 \@@_backend_loaded:n
   { \seq_set_from_clist:Nn \l_graphics_search_ext_seq { .eps , .ps } }
@@ -137,7 +137,7 @@
 %<*luatex|pdftex>
 %    \end{macrocode}
 %
-% \begin{variable}{\l_graphics_search_ext_seq}
+% \begin{variable}[no-user-doc]{\l_graphics_search_ext_seq}
 %    \begin{macrocode}
 \@@_backend_loaded:n
   {
@@ -320,7 +320,7 @@
               }
           }
           {#1}
-     }
+      }
     \cs_new_eq:NN \@@_backend_getbb_ps:n \@@_backend_getbb_eps:n
     \cs_new_protected:Npn \@@_backend_getbb_eps:nn #1#2
       {
@@ -376,13 +376,13 @@
 %<*dvipdfmx|xetex>
 %    \end{macrocode}
 %
-% \begin{variable}{\l_graphics_search_ext_seq}
+% \begin{variable}[no-user-doc]{\l_graphics_search_ext_seq}
 %    \begin{macrocode}
 \@@_backend_loaded:n
   {
     \seq_set_from_clist:Nn \l_graphics_search_ext_seq
       { .pdf , .eps , .ps , .png , .jpg , .jpeg , .bmp }
-   }
+  }
 %    \end{macrocode}
 % \end{variable}
 %
@@ -481,7 +481,7 @@
         \tl_if_empty:NF \l_@@_decodearray_str
           { :D \l_@@_decodearray_str }
         \bool_if:NT \l_@@_interpolate_bool
-           { :I }
+          { :I }
       }
       {#1} {#2}
   }
@@ -686,7 +686,7 @@
 %<*dvisvgm>
 %    \end{macrocode}
 %
-% \begin{variable}{\l_graphics_search_ext_seq}
+% \begin{variable}[no-user-doc]{\l_graphics_search_ext_seq}
 %    \begin{macrocode}
 \@@_backend_loaded:n
   {
@@ -768,7 +768,7 @@
                       { \@@_backend_getbb_svg_auxiv:Nw #2 }
                       { \@@_backend_getbb_svg_auxv:Nw #2 }
                   }
-               }
+              }
                 ##2 \s_@@_stop
           }
       }
@@ -777,7 +777,7 @@
         \@@_backend_getbb_svg_auxii:w #3
           \tl_to_str:n {#1} = \tl_to_str:n {#1} =
           \s_@@_stop
-       }
+      }
   }
 \cs_new_protected:Npn \@@_backend_getbb_svg_auxii:w { }
 \cs_new_protected:Npn \@@_backend_getbb_svg_auxiii:Nw #1 ' #2 ' #3 \s_@@_stop

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3backend-header.dtx
 %
-% Copyright (C) 2019-2023 The LaTeX Project
+% Copyright (C) 2019-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \textsf{l3backend-header} package\\ Backend graphics support^^A
+%   The \pkg{l3backend-header} module\\ Backend graphics support^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-11-09}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -59,17 +59,17 @@
 %<*dvips&header>
 %    \end{macrocode}
 %
-% \begin{macro}{color.sc}
+% \begin{macro}[no-user-doc]{color.sc}
 %   Empty definition for color at the top level.
-%    \begin{macrocode}	
+%    \begin{macrocode}
 /color.sc { } def
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{TeXcolorseparation, separation}
+% \begin{macro}[int]{TeXcolorseparation, separation}
 %   Support for separation/spot colors: this strange naming is so
 %   things work with the color stack.
-%    \begin{macrocode}	
+%    \begin{macrocode}
 TeXDict begin
 /TeXcolorseparation { setcolor } def
 end
@@ -76,7 +76,7 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{pdf.globaldict}
+% \begin{macro}[int]{pdf.globaldict}
 %   A small global dictionary for backend use.
 %    \begin{macrocode}
 true setglobal
@@ -85,7 +85,7 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}
+% \begin{macro}[int]
 %   {
 %     pdf.cvs     ,
 %     pdf.dvi.pt  ,
@@ -103,7 +103,7 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{pdf.linkmargin, pdf.linkdp.pad, pdf.linkht.pad}
+% \begin{macro}[int]{pdf.linkmargin, pdf.linkdp.pad, pdf.linkht.pad}
 %   Settings which are defined up-front in |SDict|.
 %    \begin{macrocode}
 /pdf.linkmargin { 1 pdf.pt.dvi } def
@@ -112,7 +112,7 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}
+% \begin{macro}[int]
 %   {
 %     pdf.rect        ,
 %     pdf.save.ll     ,
@@ -167,7 +167,7 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}
+% \begin{macro}[int]
 %   {
 %     pdf.dest.anchor ,
 %     pdf.dest.x      ,
@@ -219,14 +219,14 @@
       pdf.dest.y pdf.tmpc mul add
       pdf.dev.x add
     pdf.dest.x pdf.tmpb mul
-     pdf.dest.y pdf.tmpd mul add
-     pdf.dev.y add
+      pdf.dest.y pdf.tmpd mul add
+      pdf.dev.y add
   }
     def
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}
+% \begin{macro}[int]
 %   {
 %     pdf.bordertracking          ,
 %     pdf.bordertracking.begin    ,
@@ -388,7 +388,7 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}
+% \begin{macro}[int]
 %   {
 %     pdf.breaklink       ,
 %     pdf.breaklink.write ,
@@ -409,47 +409,47 @@
       {
         counttomark /pdf.count exch def
           {
-           pdf.count 0 eq { exit } if
-           counttomark 2 roll
-           1 index /Rect eq
-             {
-               dup 4 array copy
-               dup dup
-                 1 get
-                 pdf.outerbox pdf.rect.ht
-                 pdf.linkmargin 2 mul add sub
-                 3 exch put
-               dup
-                 pdf.outerbox 2 get
-                 pdf.linkmargin add
-                 2 exch put
-               dup dup
-                 3 get
-                 pdf.outerbox pdf.rect.ht
-                 pdf.linkmargin 2 mul add add
-                 1 exch put
-               /pdf.currentrect exch  def
-               pdf.breaklink.write
-                 {
-                   pdf.currentrect
-                   dup
-                     pdf.outerbox 0 get
-                     pdf.linkmargin sub
-                     0 exch put
-                   dup
-                     pdf.outerbox 2 get
-                     pdf.linkmargin add
-                     2 exch put
-                   dup dup
-                     1 get
-                     pdf.baselineskip add
-                     1 exch put
-                   dup dup
-                     3 get
-                     pdf.baselineskip add
-                     3 exch put
-                   /pdf.currentrect exch def
-                   pdf.breaklink.write
+            pdf.count 0 eq { exit } if
+            counttomark 2 roll
+            1 index /Rect eq
+              {
+                dup 4 array copy
+                dup dup
+                  1 get
+                  pdf.outerbox pdf.rect.ht
+                  pdf.linkmargin 2 mul add sub
+                  3 exch put
+                dup
+                  pdf.outerbox 2 get
+                  pdf.linkmargin add
+                  2 exch put
+                dup dup
+                  3 get
+                  pdf.outerbox pdf.rect.ht
+                  pdf.linkmargin 2 mul add add
+                  1 exch put
+                /pdf.currentrect exch def
+                pdf.breaklink.write
+                  {
+                    pdf.currentrect
+                    dup
+                      pdf.outerbox 0 get
+                      pdf.linkmargin sub
+                      0 exch put
+                    dup
+                      pdf.outerbox 2 get
+                      pdf.linkmargin add
+                      2 exch put
+                    dup dup
+                      1 get
+                      pdf.baselineskip add
+                      1 exch put
+                    dup dup
+                      3 get
+                      pdf.baselineskip add
+                      3 exch put
+                    /pdf.currentrect exch def
+                    pdf.breaklink.write
                   }
                 1 index 3 get
                 pdf.linkmargin 2 mul add
@@ -456,36 +456,36 @@
                 pdf.outerbox pdf.rect.ht add
                 2 index 1 get sub
                 pdf.baselineskip div round cvi 1 sub
-                exch
-              repeat
-              pdf.currentrect
-              dup
-                pdf.outerbox 0 get
-                pdf.linkmargin sub
-                0 exch put
-              dup dup
-                1 get
-                pdf.baselineskip add
-                1 exch put
-              dup dup
-                3 get
-                pdf.baselineskip add
-                3 exch put
-              dup 2 index 2 get  2 exch put
-              /pdf.currentrect exch def
-              pdf.breaklink.write
-              SDict /pdf.pdfmark.good false put
-              exit
-            }
-            { pdf.count 2 sub /pdf.count exch def }
-          ifelse
-        }
-      loop
-    }
-  if
-  /ANN
-}
-  def
+                  exch
+                repeat
+                pdf.currentrect
+                dup
+                  pdf.outerbox 0 get
+                  pdf.linkmargin sub
+                  0 exch put
+                dup dup
+                  1 get
+                  pdf.baselineskip add
+                  1 exch put
+                dup dup
+                  3 get
+                  pdf.baselineskip add
+                  3 exch put
+                dup 2 index 2 get  2 exch put
+                /pdf.currentrect exch def
+                pdf.breaklink.write
+                SDict /pdf.pdfmark.good false put
+                exit
+              }
+              { pdf.count 2 sub /pdf.count exch def }
+            ifelse
+          }
+        loop
+      }
+    if
+    /ANN
+  }
+    def
 /pdf.breaklink.write
   {
     counttomark 1 sub
@@ -509,7 +509,7 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}
+% \begin{macro}[int]
 %   {
 %     pdf.pdfmark      ,
 %     pdf.pdfmark.good ,

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3backend-opacity.dtx
 %
-% Copyright (C) 2021-2023 The LaTeX Project
+% Copyright (C) 2021-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \textsf{l3backend-opacity} package\\ Backend opacity support^^A
+%   The \pkg{l3backend-opacity} module\\ Backend opacity support^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-11-09}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -169,10 +169,10 @@
 %   same as color.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_backend_select:n #1
- {
-   \exp_args:Ne \@@_backend_select_aux:n
-     { \fp_eval:n { min(max(0,#1),1) } }
- }
+  {
+    \exp_args:Ne \@@_backend_select_aux:n
+      { \fp_eval:n { min(max(0,#1),1) } }
+  }
 \cs_new_protected:Npn \@@_backend_select_aux:n #1
   {
     \tl_set:Nn \l_@@_backend_fill_tl {#1}
@@ -196,15 +196,15 @@
     \cs_gset_protected:Npn \@@_backend_select_aux:n #1 { }
   }
 \cs_new_protected:Npn \@@_backend_reset:
- {
+  {
 %<*dvipdfmx|xetex>
-   \__kernel_backend_literal_pdf:n
+    \__kernel_backend_literal_pdf:n
       { /opacity1 ~ gs }
 %</dvipdfmx|xetex>
 %<*luatex|pdftex>
     \__kernel_color_backend_stack_pop:n \c_@@_backend_stack_int
 %</luatex|pdftex>
- }
+  }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -240,12 +240,12 @@
           { opacity.stroke #1 }
           { << /CA ~ #2 >> }
 %<*dvipdfmx|xetex>
-    \__kernel_backend_literal_pdf:n
+        \__kernel_backend_literal_pdf:n
 %</dvipdfmx|xetex>
 %<*luatex|pdftex>
-    \__kernel_color_backend_stack_push:nn \c_@@_backend_stack_int
+        \__kernel_color_backend_stack_push:nn \c_@@_backend_stack_int
 %</luatex|pdftex>
-         { /opacity.fill #1 ~ gs /opacity.stroke #2 ~ gs }
+          { /opacity.fill #1 ~ gs /opacity.stroke #2 ~ gs }
         \group_insert_after:N \@@_backend_reset:
       }
   }

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3backend-pdf.dtx
 %
-% Copyright (C) 2019-2023 The LaTeX Project
+% Copyright (C) 2019-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \textsf{l3backend-pdf} package\\ Backend PDF features^^A
+%   The \pkg{l3backend-pdf} module\\ Backend PDF features^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-11-09}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -388,16 +388,6 @@
 % \begin{macro}{\@@_backend_link_minima:}
 % \begin{macro}{\@@_backend_link_outerbox:n}
 % \begin{macro}{\@@_backend_link_sf_save:, \@@_backend_link_sf_restore:}
-% \begin{macro}
-%   {
-%     pdf.linkdp.pad      ,
-%     pdf.linkht.pad      ,
-%     pdf.llx, pdf.lly    ,
-%     pdf.ury, pdf.ury    ,
-%     pdf.link.dict       ,
-%     pdf.outerbox        ,
-%     pdf.baselineskip
-%   }
 %   Links are crated like annotations but with dedicated code to allow for
 %   adjusting the size of the rectangle. In contrast to \pkg{hyperref}, we
 %   grab the link content as a box which can then unbox: this allows the same
@@ -470,9 +460,9 @@
     \hbox_set:Nn \l_@@_backend_model_box { Gg }
     \exp_args:Ne \@@_backend_link_outerbox:n
       {
-         \int_if_odd:nTF { \value { page } }
-           { \oddsidemargin }
-           { \evensidemargin }
+        \int_if_odd:nTF { \value { page } }
+          { \oddsidemargin }
+          { \evensidemargin }
       }
     \box_move_down:nn { \box_dp:N \l_@@_backend_content_box }
       { \hbox:n { \__kernel_backend_postscript:n { pdf.save.linkll } } }
@@ -569,9 +559,7 @@
 % \end{macro}
 % \end{macro}
 % \end{macro}
-% \end{macro}
 %
-% \begin{macro}{\@makecol at hook}
 %   Hooks to allow link breaking: something will be needed in format mode
 %   at some stage. At present this code is disabled as there is an open
 %   question about the name of the hook: to be resolved at the \LaTeXe{}
@@ -605,7 +593,6 @@
       }
   }
 %    \end{macrocode}
-% \end{macro}
 %
 % \begin{macro}{\@@_backend_link_last:}
 %   The same as annotations, but with a custom integer.
@@ -711,7 +698,7 @@
         \__kernel_backend_literal_postscript:n
           {
             /setdistillerparams ~ where
-             { pop << /CompressPages ~ false >> setdistillerparams }
+              { pop << /CompressPages ~ false >> setdistillerparams }
             if
           }
       }
@@ -723,7 +710,7 @@
         \__kernel_backend_literal_postscript:n
           {
             /setdistillerparams ~ where
-             { pop << /CompressStreams ~ false >> setdistillerparams }
+              { pop << /CompressStreams ~ false >> setdistillerparams }
             if
           }
       }
@@ -1336,7 +1323,7 @@
 % \begin{macro}{\@@_backend_object_last:}
 %    \begin{macrocode}
 \cs_new:Npn \@@_backend_object_last:
- { @pdf.obj \int_use:N \g_@@_backend_object_int }
+  { @pdf.obj \int_use:N \g_@@_backend_object_int }
 %    \end{macrocode}
 % \end{macro}
 %
@@ -1379,7 +1366,7 @@
 % \begin{macro}{\@@_backend_annotation_last:}
 %    \begin{macrocode}
 \cs_new:Npn \@@_backend_annotation_last:
- { @pdf.obj \int_use:N \g_@@_backend_annotation_int }
+  { @pdf.obj \int_use:N \g_@@_backend_annotation_int }
 %    \end{macrocode}
 % \end{macro}
 %
@@ -1405,14 +1392,14 @@
     \exp_not:N \int_gincr:N \exp_not:N  \g_@@_backend_link_int
     \@@_backend:e
       {
-         bann ~
-         @pdf.lnk
-         \exp_not:N \int_use:N \exp_not:N  \g_@@_backend_link_int
-         \c_space_tl
-         <<
-           /Type /Annot
-           #1
-         >>
+        bann ~
+        @pdf.lnk
+        \exp_not:N \int_use:N \exp_not:N  \g_@@_backend_link_int
+        \c_space_tl
+        <<
+          /Type /Annot
+          #1
+        >>
       }
   }
 \cs_new_protected:Npn \@@_backend_link_end:

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend.ins	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend.ins	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 
 File l3backend.ins
 
-Copyright (C) 2019-2023 The LaTeX Project
+Copyright (C) 2019-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of the
 LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -35,7 +35,7 @@
 
 \preamble
 
-Copyright (C) 2019-2023 The LaTeX Project
+Copyright (C) 2019-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of
 the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -142,7 +142,7 @@
 \def\MetaPrefix{--}
 \preamble
 
-Copyright (C) 2023 The LaTeX Project
+Copyright (C) 2023,2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of
 the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3benchmark.dtx
 % 
-% Copyright (C) 2011-2023 The LaTeX Project
+% Copyright (C) 2011-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-08}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -122,7 +122,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{l3benchmark}{2023-12-08}{}
+\ProvidesExplPackage{l3benchmark}{2024-01-04}{}
   {L3 Experimental benchmarking}
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.ins	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.ins	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 
 File: l3benchmark.ins
 
-Copyright (C) 2011,2018-2023 The LaTeX Project
+Copyright (C) 2011,2018-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of the
 LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -34,7 +34,7 @@
 
 \preamble
 
-Copyright (C) 2018-2023 The LaTeX Project
+Copyright (C) 2018-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of
 the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3draw-boxes.dtx
 %
-% Copyright (C) 2018-2023 The LaTeX Project
+% Copyright (C) 2018-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-08}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3draw-layers.dtx
 %
-% Copyright (C) 2019-2023 The LaTeX Project
+% Copyright (C) 2019-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-08}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3draw-paths.dtx
 %
-% Copyright (C) 2018-2023 The LaTeX Project
+% Copyright (C) 2018-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-08}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -235,9 +235,9 @@
   }
 \cs_new_protected:Npn \@@_path_moveto:nn #1#2
   {
-     \@@_path_update_limits:nn {#1} {#2}
-     \@@_softpath_moveto:nn {#1} {#2}
-     \@@_path_update_last:nn {#1} {#2}
+    \@@_path_update_limits:nn {#1} {#2}
+    \@@_softpath_moveto:nn {#1} {#2}
+    \@@_path_update_last:nn {#1} {#2}
   }
 \cs_new_protected:Npn \draw_path_lineto:n #1
   {
@@ -247,10 +247,10 @@
   }
 \cs_new_protected:Npn \@@_path_lineto:nn #1#2
   {
-     \@@_path_mark_corner:
-     \@@_path_update_limits:nn {#1} {#2}
-     \@@_softpath_lineto:nn {#1} {#2}
-     \@@_path_update_last:nn {#1} {#2}
+    \@@_path_mark_corner:
+    \@@_path_update_limits:nn {#1} {#2}
+    \@@_softpath_lineto:nn {#1} {#2}
+    \@@_path_update_last:nn {#1} {#2}
   }
 \cs_new_protected:Npn \draw_path_curveto:nnn #1#2#3
   {
@@ -265,11 +265,11 @@
   }
 \cs_new_protected:Npn \@@_path_curveto:nnnnnn #1#2#3#4#5#6
   {
-     \@@_path_update_limits:nn {#1} {#2}
-     \@@_path_update_limits:nn {#3} {#4}
-     \@@_path_update_limits:nn {#5} {#6}
-     \@@_softpath_curveto:nnnnnn {#1} {#2} {#3} {#4} {#5} {#6}
-     \@@_path_update_last:nn {#5} {#6}
+    \@@_path_update_limits:nn {#1} {#2}
+    \@@_path_update_limits:nn {#3} {#4}
+    \@@_path_update_limits:nn {#5} {#6}
+    \@@_softpath_curveto:nnnnnn {#1} {#2} {#3} {#4} {#5} {#6}
+    \@@_path_update_last:nn {#5} {#6}
   }
 %    \end{macrocode}
 % \end{macro}
@@ -348,32 +348,32 @@
     \fp_set:Nn \l_@@_path_tmpb_fp { \c_@@_path_curveto_b_fp * #2 }
     \use:e
       {
-         \@@_path_mark_corner:
-         \@@_path_curveto:nnnnnn
-           {
-             \fp_to_dim:n
-               {
-                   \c_@@_path_curveto_a_fp * \g_@@_path_lastx_dim
-                 + \l_@@_path_tmpa_fp
-               }
-           }
-           {
-             \fp_to_dim:n
-               {
-                   \c_@@_path_curveto_a_fp * \g_@@_path_lasty_dim
-                 + \l_@@_path_tmpb_fp
-               }
-           }
-           {
-             \fp_to_dim:n
-               { \c_@@_path_curveto_a_fp * #3 + \l_@@_path_tmpa_fp }
-           }
-           {
-             \fp_to_dim:n
-               { \c_@@_path_curveto_a_fp * #4 + \l_@@_path_tmpb_fp }
-           }
-           {#3}
-           {#4}
+        \@@_path_mark_corner:
+        \@@_path_curveto:nnnnnn
+          {
+            \fp_to_dim:n
+              {
+                  \c_@@_path_curveto_a_fp * \g_@@_path_lastx_dim
+                + \l_@@_path_tmpa_fp
+              }
+          }
+          {
+            \fp_to_dim:n
+              {
+                  \c_@@_path_curveto_a_fp * \g_@@_path_lasty_dim
+                + \l_@@_path_tmpb_fp
+              }
+          }
+          {
+            \fp_to_dim:n
+              { \c_@@_path_curveto_a_fp * #3 + \l_@@_path_tmpa_fp }
+          }
+          {
+            \fp_to_dim:n
+              { \c_@@_path_curveto_a_fp * #4 + \l_@@_path_tmpb_fp }
+          }
+          {#3}
+          {#4}
       }
   }
 \fp_const:Nn \c_@@_path_curveto_a_fp { 1 / 3 }
@@ -390,8 +390,8 @@
 % \begin{macro}
 %   {
 %     \@@_path_arc_auxi:nnnnNnn,
-%     \@@_path_arc_auxi:fnnnNnn,
-%     \@@_path_arc_auxi:fnfnNnn
+%     \@@_path_arc_auxi:enenNnn,
+%     \@@_path_arc_auxi:eennNnn
 %   }
 % \begin{macro}{\@@_path_arc_auxii:nnnNnnnn}
 % \begin{macro}{\@@_path_arc_auxiii:nn}
@@ -416,7 +416,7 @@
           { \fp_eval:n {#2} }
           { \fp_to_dim:n {#3} }
           { \fp_to_dim:n {#4} }
-       }
+      }
   }
 \cs_new_protected:Npn \@@_path_arc:nnnn #1#2#3#4
   {
@@ -432,7 +432,7 @@
       {
         \fp_compare:nNnTF \l_@@_path_arc_delta_fp > { 115 }
           {
-            \@@_path_arc_auxi:ffnnNnn
+            \@@_path_arc_auxi:eennNnn
               { \fp_to_decimal:N \l_@@_path_arc_start_fp }
               { \fp_eval:n { \l_@@_path_arc_start_fp #3 90 } }
               { 90 } {#2}
@@ -439,7 +439,7 @@
               #3 {#4} {#5}
           }
           {
-            \@@_path_arc_auxi:ffnnNnn
+            \@@_path_arc_auxi:eennNnn
               { \fp_to_decimal:N \l_@@_path_arc_start_fp }
               { \fp_eval:n { \l_@@_path_arc_start_fp #3 60 } }
               { 60 } {#2}
@@ -447,7 +447,7 @@
           }
       }
     \@@_path_mark_corner:
-    \@@_path_arc_auxi:fnfnNnn
+    \@@_path_arc_auxi:enenNnn
       { \fp_to_decimal:N \l_@@_path_arc_start_fp }
       {#2}
       { \fp_eval:n { abs( \l_@@_path_arc_start_fp - #2 ) } }
@@ -488,10 +488,10 @@
           }
       }
   }
-\cs_generate_variant:Nn \@@_path_arc_auxi:nnnnNnn { fnf , ff }
+\cs_generate_variant:Nn \@@_path_arc_auxi:nnnnNnn { ene , ee }
 %    \end{macrocode}
 %   We can now calculate the required points. As everything here is
-%   non-expandable, that is best done by using \texttt{x}-type expansion
+%   non-expandable, that is best done by using \texttt{e}-type expansion
 %   to build up the tokens. The three points are calculated out-of-order,
 %   since finding the second control point needs the position of the end
 %   point. Once the points are found, fire-off the fundamental path
@@ -708,7 +708,7 @@
           { \@@_path_rectangle_rounded:nnnn }
           { \@@_path_rectangle:nnnn }
       }
-      { \draw_point_transform:n {#1} }
+      {#1}
       {#2}
   }
 \cs_new_protected:Npn \@@_path_rectangle:nnnn #1#2#3#4
@@ -752,12 +752,12 @@
 % \begin{macro}{\draw_path_grid:nnnn}
 % \begin{macro}
 %   {
-%     \@@_path_grid_auxi:nnnnnn, \@@_path_grid_auxi:ffnnnn,
+%     \@@_path_grid_auxi:nnnnnn, \@@_path_grid_auxi:eennnn,
 %     \@@_path_grid_auxii:nnnnnn,
-%     \@@_path_grid_auxiii:nnnnnn, \@@_path_grid_auxiiii:ffnnnn
+%     \@@_path_grid_auxiii:nnnnnn, \@@_path_grid_auxiiii:eennnn
 %   }
 % \begin{macro}
-%   {\@@_path_grid_auxiv:nnnnnnnn, \@@_path_grid_auxiv:ffnnnnnn}
+%   {\@@_path_grid_auxiv:nnnnnnnn, \@@_path_grid_auxiv:eennnnnn}
 %   The main complexity here is lining up the grid correctly.
 %   To keep it simple, we tidy up the argument ordering first.
 %    \begin{macrocode}
@@ -765,7 +765,7 @@
   {
     \@@_point_process:nnn
       {
-        \@@_path_grid_auxi:ffnnnn
+        \@@_path_grid_auxi:eennnn
           { \dim_eval:n { \dim_abs:n {#1} } }
           { \dim_eval:n { \dim_abs:n {#2} } }
       }
@@ -777,7 +777,7 @@
       { \@@_path_grid_auxii:nnnnnn {#1} {#2} {#5} {#4} {#3} {#6} }
       { \@@_path_grid_auxii:nnnnnn {#1} {#2} {#3} {#4} {#5} {#6} }
   }
-\cs_generate_variant:Nn \@@_path_grid_auxi:nnnnnn { ff }
+\cs_generate_variant:Nn \@@_path_grid_auxi:nnnnnn { ee }
 \cs_new_protected:Npn \@@_path_grid_auxii:nnnnnn #1#2#3#4#5#6
   {
     \dim_compare:nNnTF {#4} > {#6}
@@ -786,7 +786,7 @@
   }
 \cs_new_protected:Npn \@@_path_grid_auxiii:nnnnnn #1#2#3#4#5#6
   {
-    \@@_path_grid_auxiv:ffnnnnnn
+    \@@_path_grid_auxiv:eennnnnn
       { \fp_to_dim:n { #1 * trunc(#3/(#1)) } }
       { \fp_to_dim:n { #2 * trunc(#4/(#2)) } }
       {#1} {#2} {#3} {#4} {#5} {#6}
@@ -810,7 +810,7 @@
         \draw_path_lineto:n { #7 , ##1 }
       }
   }
-\cs_generate_variant:Nn \@@_path_grid_auxiv:nnnnnnnn { ff }
+\cs_generate_variant:Nn \@@_path_grid_auxiv:nnnnnnnn { ee }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -864,7 +864,7 @@
         \@@_path_reset_limits:
       }
       { \@@_path_use:n { #1 , clear } }
-   }
+  }
 %    \end{macrocode}
 %   Map over the actions and set up the data: mainly just booleans,
 %   but with the possibility to cover more complex cases. The business end

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3draw-points.dtx
 %
-% Copyright (C) 2018-2023 The LaTeX Project
+% Copyright (C) 2018-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-08}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -70,10 +70,10 @@
 %   \item \cs{pgfpointadd}, \cs{pgfpointdiff},
 %     \cs{pgfpointscale}: Can be given explicitly.
 %   \item \cs{pgfextractx}, \cs{pgfextracty}: Available by applying
-%     \cs{use_i:nn}/\cs{use_ii:nn} or similar to the \texttt{x}-type
+%     \cs{use_i:nn}/\cs{use_ii:nn} or similar to the \texttt{e}-type
 %     expansion of a point expression.
 %    \item \cs{pgfgetlastxy}: Unused in the entire \pkg{pgf} core, may be
-%      emulated by \texttt{x}-type expansion of a point expression, then using
+%      emulated by \texttt{e}-type expansion of a point expression, then using
 %      the result.
 % \end{itemize}
 % In addition, equivalents of the following \emph{may} be added in future but
@@ -93,16 +93,18 @@
 % \subsection{Support functions}
 %
 % \begin{macro}[EXP]{\@@_point_process:nn}
-% \begin{macro}[EXP]{\@@_point_process_auxi:nn}
+% \begin{macro}[EXP]{\@@_point_process_auxi:nn, \@@_point_process_auxi:en}
 % \begin{macro}[EXP]{\@@_point_process_auxii:nw}
 % \begin{macro}[EXP]{\@@_point_process:nnn}
-% \begin{macro}[EXP]{\@@_point_process_auxiii:nnn}
+% \begin{macro}[EXP]{\@@_point_process_auxiii:nnn, \@@_point_process_auxiii:een}
 % \begin{macro}[EXP]{\@@_point_process_auxiv:nw}
 % \begin{macro}[EXP]{\@@_point_process:nnnn}
-% \begin{macro}[EXP]{\@@_point_process_auxv:nnnn}
+% \begin{macro}[EXP]
+%  {\@@_point_process_auxv:nnnn, \@@_point_process_auxv:eeen}
 % \begin{macro}[EXP]{\@@_point_process_auxvi:nw}
 % \begin{macro}[EXP]{\@@_point_process:nnnnn}
-% \begin{macro}[EXP]{\@@_point_process_auxvii:nnnnn}
+% \begin{macro}[EXP]
+%  {\@@_point_process_auxvii:nnnnn, \@@_point_process_auxvii:eeeen}
 % \begin{macro}[EXP]{\@@_point_process_auxviii:nw}
 %   Execute whatever code is passed to extract the $x$ and $y$ co-ordinates.
 %   The first argument here should itself absorb two arguments. There is
@@ -111,17 +113,18 @@
 %    \begin{macrocode}
 \cs_new:Npn \@@_point_process:nn #1#2
   {
-    \exp_args:Nf \@@_point_process_auxi:nn
+    \@@_point_process_auxi:en
       { \draw_point:n {#2} }
       {#1}
   }
 \cs_new:Npn \@@_point_process_auxi:nn #1#2
   { \@@_point_process_auxii:nw {#2} #1 \s_@@_stop }
+\cs_generate_variant:Nn \@@_point_process_auxi:nn { e }
 \cs_new:Npn \@@_point_process_auxii:nw #1 #2 , #3 \s_@@_stop
   { #1 {#2} {#3} }
 \cs_new:Npn \@@_point_process:nnn #1#2#3
   {
-    \exp_args:Nff \@@_point_process_auxiii:nnn
+    \@@_point_process_auxiii:een
       { \draw_point:n {#2} }
       { \draw_point:n {#3} }
       {#1}
@@ -128,11 +131,12 @@
   }
 \cs_new:Npn \@@_point_process_auxiii:nnn #1#2#3
   { \@@_point_process_auxiv:nw {#3} #1 \s_@@_mark #2 \s_@@_stop }
+\cs_generate_variant:Nn \@@_point_process_auxiii:nnn { ee }
 \cs_new:Npn \@@_point_process_auxiv:nw #1 #2 , #3 \s_@@_mark #4 , #5 \s_@@_stop
   { #1 {#2} {#3} {#4} {#5} }
 \cs_new:Npn \@@_point_process:nnnn #1#2#3#4
   {
-    \exp_args:Nfff \@@_point_process_auxv:nnnn
+    \@@_point_process_auxv:eeen
       { \draw_point:n {#2} }
       { \draw_point:n {#3} }
       { \draw_point:n {#4} }
@@ -140,12 +144,13 @@
   }
 \cs_new:Npn \@@_point_process_auxv:nnnn #1#2#3#4
   { \@@_point_process_auxvi:nw {#4} #1 \s_@@_mark #2 \s_@@_mark #3 \s_@@_stop }
+\cs_generate_variant:Nn \@@_point_process_auxv:nnnn { eee }
 \cs_new:Npn \@@_point_process_auxvi:nw
   #1 #2 , #3 \s_@@_mark #4 , #5 \s_@@_mark #6 , #7 \s_@@_stop
   { #1 {#2} {#3} {#4} {#5} {#6} {#7} }
 \cs_new:Npn \@@_point_process:nnnnn #1#2#3#4#5
   {
-    \exp_args:Nffff \@@_point_process_auxvii:nnnnn
+    \@@_point_process_auxvii:eeeen
       { \draw_point:n {#2} }
       { \draw_point:n {#3} }
       { \draw_point:n {#4} }
@@ -157,6 +162,7 @@
     \@@_point_process_auxviii:nw
       {#5} #1 \s_@@_mark #2 \s_@@_mark #3 \s_@@_mark #4 \s_@@_stop
   }
+\cs_generate_variant:Nn \@@_point_process_auxvii:nnnnn { eeee }
 \cs_new:Npn \@@_point_process_auxviii:nw
   #1 #2 , #3 \s_@@_mark #4 , #5 \s_@@_mark #6 , #7 \s_@@_mark #8 , #9 \s_@@_stop
   { #1 {#2} {#3} {#4} {#5} {#6} {#7} {#8} {#9} }
@@ -177,15 +183,15 @@
 % \subsection{Basic points}
 %
 % \begin{macro}[EXP]{\draw_point:n}
-% \begin{macro}[EXP]{\@@_point_to_dim:n, \@@_point_to_dim:f}
+% \begin{macro}[EXP]{\@@_point_to_dim:n, \@@_point_to_dim:e}
 % \begin{macro}[EXP]{\@@_point_to_dim:w} 
 %   Co-ordinates are always returned as two dimensions. 
 %    \begin{macrocode} 
 \cs_new:Npn \draw_point:n #1 
-  { \@@_point_to_dim:f { \fp_eval:n {#1} } }
+  { \@@_point_to_dim:e { \fp_eval:n {#1} } }
 \cs_new:Npn \@@_point_to_dim:n #1 
   { \@@_point_to_dim:w #1 }
-\cs_generate_variant:Nn \@@_point_to_dim:n { f }
+\cs_generate_variant:Nn \@@_point_to_dim:n { e }
 \cs_new:Npn \@@_point_to_dim:w ( #1 , ~ #2 ) { #1pt , #2pt }
 %    \end{macrocode}
 % \end{macro}
@@ -195,7 +201,7 @@
 %
 % \begin{macro}[EXP]{\draw_point_polar:nn}
 % \begin{macro}[EXP]{\draw_point_polar:nnn}
-% \begin{macro}[EXP]{\@@_draw_polar:nnn, \@@_draw_polar:fnn}
+% \begin{macro}[EXP]{\@@_draw_polar:nnn, \@@_draw_polar:enn}
 %   Polar co-ordinates may have either one or two lengths, so there is a need
 %   to do a simple split before the calculation. As the angle gets used twice,
 %   save on any expression evaluation there and force expansion.
@@ -203,10 +209,10 @@
 \cs_new:Npn \draw_point_polar:nn #1#2
   { \draw_point_polar:nnn {#1} {#1} {#2} }
 \cs_new:Npn \draw_point_polar:nnn #1#2#3
-  { \@@_draw_polar:fnn { \fp_eval:n {#3} } {#1} {#2} }
+  { \@@_draw_polar:enn { \fp_eval:n {#3} } {#1} {#2} }
 \cs_new:Npn \@@_draw_polar:nnn #1#2#3
   { \draw_point:n { cosd(#1) * (#2) , sind(#1) * (#3) } }
-\cs_generate_variant:Nn \@@_draw_polar:nnn { f }
+\cs_generate_variant:Nn \@@_draw_polar:nnn { e }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -218,7 +224,7 @@
 %
 % \begin{macro}[EXP]{\draw_point_unit_vector:n}
 % \begin{macro}[EXP]{\@@_point_unit_vector:nn}
-% \begin{macro}[EXP]{\@@_point_unit_vector:nnn}
+% \begin{macro}[EXP]{\@@_point_unit_vector:nnn, \@@_point_unit_vector:enn}
 %   The outcome is the normalised vector from $(0,0)$ in the direction of
 %   the point, \emph{i.e.}
 %   \[
@@ -232,7 +238,7 @@
   { \@@_point_process:nn { \@@_point_unit_vector:nn } {#1} }
 \cs_new:Npn \@@_point_unit_vector:nn #1#2
   {
-    \exp_args:Nf \@@_point_unit_vector:nnn
+    \@@_point_unit_vector:nnn
       { \fp_eval:n { (sqrt(#1 * #1 + #2 * #2)) } }
       {#1} {#2}
   }
@@ -245,6 +251,7 @@
           { ( #2 , #3 ) / #1 }
       }
   }
+\cs_generate_variant:Nn \@@_point_unit_vector:nnn { e }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -256,7 +263,7 @@
 % \begin{macro}[EXP]{\@@_point_intersect_lines:nnnnnn}
 % \begin{macro}[EXP]{\@@_point_intersect_lines:nnnnnnnn}
 % \begin{macro}[EXP]
-%   {\@@_point_intersect_lines_aux:nnnnnn, \@@_point_intersect_lines_aux:ffffff}
+%   {\@@_point_intersect_lines_aux:nnnnnn, \@@_point_intersect_lines_aux:eeeeee}
 %    The intersection point~$P$ between a line joining points $(x_{1}, y_{1})$
 %    and $(x_{2}, y_{2})$ with a second line joining points $(x_{3}, y_{3})$
 %    and $(x_{4}, y_{4})$ can be calculated using the formulae
@@ -300,7 +307,7 @@
 %    \begin{macrocode}
 \cs_new:Npn \@@_point_intersect_lines:nnnnnnnn #1#2#3#4#5#6#7#8
   {
-    \@@_point_intersect_lines_aux:ffffff
+    \@@_point_intersect_lines_aux:eeeeee
       { \fp_eval:n { #1 * #4 - #2 * #3 } }
       { \fp_eval:n { #5 * #8 - #6 * #7 } }
       { \fp_eval:n { #1 - #3 } }
@@ -316,7 +323,7 @@
           / ( #4 * #5 - #6 * #3 )
       }
   }
-\cs_generate_variant:Nn \@@_point_intersect_lines_aux:nnnnnn { ffffff }
+\cs_generate_variant:Nn \@@_point_intersect_lines_aux:nnnnnn { eeeeee }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -328,29 +335,29 @@
 % \begin{macro}[EXP]
 %   {
 %     \@@_point_intersect_circles_auxii:nnnnnnn,
-%     \@@_point_intersect_circles_auxii:ffnnnnn,
+%     \@@_point_intersect_circles_auxii:eennnnn,
 %     \@@_point_intersect_circles_auxiii:nnnnnnn,
-%     \@@_point_intersect_circles_auxiii:ffnnnnn
+%     \@@_point_intersect_circles_auxiii:eennnnn
 %   }
 %  \begin{macro}[EXP]
 %    {
 %      \@@_point_intersect_circles_auxiv:nnnnnnnn,
-%      \@@_point_intersect_circles_auxiv:fnnnnnnn
+%      \@@_point_intersect_circles_auxiv:ennnnnnn
 %    }
 %  \begin{macro}[EXP]
 %    {
 %      \@@_point_intersect_circles_auxv:nnnnnnnnn,
-%      \@@_point_intersect_circles_auxv:ffnnnnnnn
+%      \@@_point_intersect_circles_auxv:eennnnnnn
 %    }
 %  \begin{macro}[EXP]
 %    {
 %      \@@_point_intersect_circles_auxvi:nnnnnnnn,
-%      \@@_point_intersect_circles_auxvi:fnnnnnnn
+%      \@@_point_intersect_circles_auxvi:ennnnnnn
 %    }
 % \begin{macro}[EXP]
 %   {
 %     \@@_point_intersect_circles_auxvii:nnnnnnn,
-%     \@@_point_intersect_circles_auxvii:fffnnnn
+%     \@@_point_intersect_circles_auxvii:eeennnn
 %   }
 %   Another long expansion chain to get the values in the right places.
 %   We have two circles, the first with center $(a, b)$ and radius~$r$,
@@ -383,7 +390,7 @@
   }
 \cs_new:Npn \@@_point_intersect_circles_auxi:nnnnnnn #1#2#3#4#5#6#7
   {
-    \@@_point_intersect_circles_auxii:ffnnnnn
+    \@@_point_intersect_circles_auxii:eennnnn
       { \fp_eval:n {#1} } { \fp_eval:n {#2} } {#4} {#5} {#6} {#7} {#3}
   }
 %    \end{macrocode}
@@ -403,19 +410,19 @@
 %    \begin{macrocode}
 \cs_new:Npn \@@_point_intersect_circles_auxii:nnnnnnn #1#2#3#4#5#6#7
   {
-    \@@_point_intersect_circles_auxiii:ffnnnnn
+    \@@_point_intersect_circles_auxiii:eennnnn
       { \fp_eval:n { #5 - #3 } }
       { \fp_eval:n { #6 - #4 } }
       {#1} {#2} {#3} {#4} {#7}
   }
-\cs_generate_variant:Nn \@@_point_intersect_circles_auxii:nnnnnnn { ff }
+\cs_generate_variant:Nn \@@_point_intersect_circles_auxii:nnnnnnn { ee }
 \cs_new:Npn \@@_point_intersect_circles_auxiii:nnnnnnn #1#2#3#4#5#6#7
   {
-    \@@_point_intersect_circles_auxiv:fnnnnnnn
+    \@@_point_intersect_circles_auxiv:ennnnnnn
       { \fp_eval:n { sqrt( #1 * #1 + #2 * #2 ) } }
       {#1} {#2} {#3} {#4} {#5} {#6} {#7}
   }
-\cs_generate_variant:Nn \@@_point_intersect_circles_auxiii:nnnnnnn { ff }
+\cs_generate_variant:Nn \@@_point_intersect_circles_auxiii:nnnnnnn { ee }
 %    \end{macrocode}
 %   We now have $p$: we pre-calculate $1/p$ as it is needed a few times and
 %   is relatively expensive. We also need $r^{2}$ twice so deal with that
@@ -423,19 +430,19 @@
 %    \begin{macrocode}
 \cs_new:Npn \@@_point_intersect_circles_auxiv:nnnnnnnn #1#2#3#4#5#6#7#8
   {
-    \@@_point_intersect_circles_auxv:ffnnnnnnn
+    \@@_point_intersect_circles_auxv:eennnnnnn
       { \fp_eval:n { 1 / #1 } }
       { \fp_eval:n { #4 * #4 } }
       {#1} {#2} {#3} {#5} {#6} {#7} {#8}
   }
-\cs_generate_variant:Nn \@@_point_intersect_circles_auxiv:nnnnnnnn { f }
+\cs_generate_variant:Nn \@@_point_intersect_circles_auxiv:nnnnnnnn { e }
 \cs_new:Npn \@@_point_intersect_circles_auxv:nnnnnnnnn #1#2#3#4#5#6#7#8#9
   {
-    \@@_point_intersect_circles_auxvi:fnnnnnnn
+    \@@_point_intersect_circles_auxvi:ennnnnnn
       { \fp_eval:n { 0.5 * #1 * ( #2 + #3 * #3 - #6 * #6 ) } }
       {#1} {#2} {#4} {#5} {#7} {#8} {#9}
   }
-\cs_generate_variant:Nn \@@_point_intersect_circles_auxv:nnnnnnnnn { ff }
+\cs_generate_variant:Nn \@@_point_intersect_circles_auxv:nnnnnnnnn { ee }
 %    \end{macrocode}
 %   We now have all of the intermediate values we require, with one division
 %   carried out up-front to avoid doing this expensive step twice:
@@ -455,19 +462,19 @@
 %    \begin{macrocode}
 \cs_new:Npn \@@_point_intersect_circles_auxvi:nnnnnnnn #1#2#3#4#5#6#7#8
   {
-    \@@_point_intersect_circles_auxvii:fffnnnn
+    \@@_point_intersect_circles_auxvii:eeennnn
       { \fp_eval:n { #1 * #2 } }
       { \int_if_odd:nTF {#8} { 1 } { -1 } }
       { \fp_eval:n { sqrt ( #3 - #1 * #1 ) * #2 } }
       {#4} {#5} {#6} {#7}
   }
-\cs_generate_variant:Nn \@@_point_intersect_circles_auxvi:nnnnnnnn { f }
+\cs_generate_variant:Nn \@@_point_intersect_circles_auxvi:nnnnnnnn { e }
 \cs_new:Npn \@@_point_intersect_circles_auxvii:nnnnnnn #1#2#3#4#5#6#7
   {
     \draw_point:n
       { #6 + #4 * #1 + #2 * #3 * #5 , #7 + #5 * #1 + -1 * #2 * #3 * #4 }
   }
-\cs_generate_variant:Nn \@@_point_intersect_circles_auxvii:nnnnnnn { fff }
+\cs_generate_variant:Nn \@@_point_intersect_circles_auxvii:nnnnnnn { eee }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -482,19 +489,19 @@
 % \begin{macro}[EXP]
 %   {
 %     \@@_point_intersect_line_circle_auxii:nnnnnnnn,
-%     \@@_point_intersect_line_circle_auxii:fnnnnnnn,
+%     \@@_point_intersect_line_circle_auxii:ennnnnnn,
 %     \@@_point_intersect_line_circle_auxiii:nnnnnnnn,
-%     \@@_point_intersect_line_circle_auxiii:fffnnnnn
+%     \@@_point_intersect_line_circle_auxiii:eeennnnn
 %   }
 %  \begin{macro}[EXP]
 %    {
 %      \@@_point_intersect_line_circle_auxiv:nnnnnnnn,
-%      \@@_point_intersect_line_circle_auxiv:ffnnnnnn
+%      \@@_point_intersect_line_circle_auxiv:eennnnnn
 %    }
 %  \begin{macro}[EXP]
 %    {
 %      \@@_point_intersect_line_circle_auxv:nnnnn,
-%      \@@_point_intersect_line_circle_auxv:fnnnn
+%      \@@_point_intersect_line_circle_auxv:ennnn
 %    }
 %   The intersection points~$P_{1}$ and~$P_{2}$ between
 %   a line joining points $(x_{1}, y_{1})$ and $(x_{2}, y_{2})$
@@ -531,7 +538,7 @@
   }
 \cs_new:Npn \@@_point_intersect_line_circle_auxi:nnnnnnnn #1#2#3#4#5#6#7#8
   {
-    \@@_point_intersect_line_circle_auxii:fnnnnnnn
+    \@@_point_intersect_line_circle_auxii:ennnnnnn
       { \fp_eval:n {#1} } {#3} {#4} {#5} {#6} {#7} {#8} {#2}
   }
 %    \end{macrocode}
@@ -552,24 +559,24 @@
 %    \begin{macrocode}
 \cs_new:Npn \@@_point_intersect_line_circle_auxii:nnnnnnnn #1#2#3#4#5#6#7#8
   {
-    \@@_point_intersect_line_circle_auxiii:fffnnnnn
+    \@@_point_intersect_line_circle_auxiii:eeennnnn
       { \fp_eval:n { (#4-#2)*(#4-#2)+(#5-#3)*(#5-#3) } }
       { \fp_eval:n { 2*((#4-#2)*(#2-#6)+(#5-#3)*(#3-#7)) } }
       { \fp_eval:n { (#6*#6+#7*#7)+(#2*#2+#3*#3)-(2*(#6*#2+#7*#3))-(#1*#1) } }
       {#2} {#3} {#4} {#5} {#8}
   }
-\cs_generate_variant:Nn \@@_point_intersect_line_circle_auxii:nnnnnnnn { f }
+\cs_generate_variant:Nn \@@_point_intersect_line_circle_auxii:nnnnnnnn { e }
 %    \end{macrocode}
 % then we can get $d = b^{2} - 4\times a \times c$ and the usage of $n$.
 %    \begin{macrocode}
 \cs_new:Npn \@@_point_intersect_line_circle_auxiii:nnnnnnnn #1#2#3#4#5#6#7#8
   {
-    \@@_point_intersect_line_circle_auxiv:ffnnnnnn
+    \@@_point_intersect_line_circle_auxiv:eennnnnn
       { \fp_eval:n {  #2 * #2 - 4 * #1 * #3 } }
       { \int_if_odd:nTF {#8} { 1 } { -1 } }
       {#1} {#2} {#4} {#5} {#6} {#7}
   }
-\cs_generate_variant:Nn \@@_point_intersect_line_circle_auxiii:nnnnnnnn { fff }
+\cs_generate_variant:Nn \@@_point_intersect_line_circle_auxiii:nnnnnnnn { eee }
 %    \end{macrocode}
 %   We now have all of the intermediate values we require, with one division
 %   carried out up-front to avoid doing this expensive step twice:
@@ -590,17 +597,17 @@
 %    \begin{macrocode}
 \cs_new:Npn \@@_point_intersect_line_circle_auxiv:nnnnnnnn #1#2#3#4#5#6#7#8
   {
-    \@@_point_intersect_line_circle_auxv:fnnnn
+    \@@_point_intersect_line_circle_auxv:ennnn
       { \fp_eval:n { (-1 * #4 + #2 * sqrt(#1)) / (2 * #3) } }
       {#5} {#6} {#7} {#8}
   }
-\cs_generate_variant:Nn \@@_point_intersect_line_circle_auxiv:nnnnnnnn { ff }
+\cs_generate_variant:Nn \@@_point_intersect_line_circle_auxiv:nnnnnnnn { ee }
 \cs_new:Npn \@@_point_intersect_line_circle_auxv:nnnnn #1#2#3#4#5
   {
     \draw_point:n
       { #2 + #1 * (#4 - #2), #3 + #1 * (#5 - #3) }
   }
-\cs_generate_variant:Nn \@@_point_intersect_line_circle_auxv:nnnnn { f }
+\cs_generate_variant:Nn \@@_point_intersect_line_circle_auxv:nnnnn { e }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -614,12 +621,12 @@
 % \begin{macro}[EXP]
 %   {
 %     \@@_point_interpolate_line_aux:nnnnn,
-%     \@@_point_interpolate_line_aux:fnnnn,
+%     \@@_point_interpolate_line_aux:ennnn,
 %   }
 % \begin{macro}[EXP]
 %   {
 %     \@@_point_interpolate_line_aux:nnnnnn,
-%     \@@_point_interpolate_line_aux:fnnnnn,
+%     \@@_point_interpolate_line_aux:ennnnn,
 %   }
 %   Simple maths after expansion.
 %    \begin{macrocode}
@@ -626,18 +633,18 @@
 \cs_new:Npn \draw_point_interpolate_line:nnn #1#2#3
   {
     \@@_point_process:nnn
-      { \@@_point_interpolate_line_aux:fnnnn { \fp_eval:n {#1} } }
+      { \@@_point_interpolate_line_aux:ennnn { \fp_eval:n {#1} } }
       {#2} {#3}
   }
 \cs_new:Npn \@@_point_interpolate_line_aux:nnnnn #1#2#3#4#5
   {
-    \@@_point_interpolate_line_aux:fnnnnn { \fp_eval:n { 1 - #1 } }
+    \@@_point_interpolate_line_aux:ennnnn { \fp_eval:n { 1 - #1 } }
       {#1} {#2} {#3} {#4} {#5}
   }
-\cs_generate_variant:Nn \@@_point_interpolate_line_aux:nnnnn { f }
+\cs_generate_variant:Nn \@@_point_interpolate_line_aux:nnnnn { e }
 \cs_new:Npn \@@_point_interpolate_line_aux:nnnnnn #1#2#3#4#5#6
   { \draw_point:n { #2 * #3 + #1 * #5 , #2 * #4 + #1 * #6 } }
-\cs_generate_variant:Nn \@@_point_interpolate_line_aux:nnnnnn { f }
+\cs_generate_variant:Nn \@@_point_interpolate_line_aux:nnnnnn { e }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -648,7 +655,7 @@
 % \begin{macro}[EXP]
 %   {
 %     \@@_point_interpolate_distance:nnnnnn,
-%     \@@_point_interpolate_distance:fnnnnn,
+%     \@@_point_interpolate_distance:ennnnn,
 %   }
 %   Same idea but using the normalised length to obtain the scale factor.
 %   The start point is needed twice, so we force evaluation, but the end
@@ -664,7 +671,7 @@
   {
     \@@_point_process:nn
       {
-        \@@_point_interpolate_distance:fnnnn
+        \@@_point_interpolate_distance:ennnn
           { \fp_eval:n {#1} } {#3} {#4}
       }
       { \draw_point_unit_vector:n { ( #2 ) - ( #3 , #4 ) } }
@@ -671,7 +678,7 @@
   }
 \cs_new:Npn \@@_point_interpolate_distance:nnnnn #1#2#3#4#5
   { \draw_point:n { #2 + #1 * #4 , #3 + #1 * #5 } }
-\cs_generate_variant:Nn \@@_point_interpolate_distance:nnnnn { f }
+\cs_generate_variant:Nn \@@_point_interpolate_distance:nnnnn { e }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -683,17 +690,17 @@
 % \begin{macro}[EXP]
 %   {
 %     \@@_point_interpolate_arcaxes_auxii:nnnnnnnnn,
-%     \@@_point_interpolate_arcaxes_auxii:fnnnnnnnn
+%     \@@_point_interpolate_arcaxes_auxii:ennnnnnnn
 %   }
 % \begin{macro}[EXP]
 %   {
 %     \@@_point_interpolate_arcaxes_auxiii:nnnnnnn,
-%     \@@_point_interpolate_arcaxes_auxiii:fnnnnnn
+%     \@@_point_interpolate_arcaxes_auxiii:ennnnnn
 %   }
 % \begin{macro}[EXP]
 %   {
 %     \@@_point_interpolate_arcaxes_auxiv:nnnnnnnn,
-%     \@@_point_interpolate_arcaxes_auxiv:ffnnnnnn
+%     \@@_point_interpolate_arcaxes_auxiv:eennnnnn
 %   }
 %   Finding a point on an ellipse arc is relatively easy: find the correct
 %   angle between the two given, use the sine and cosine of that angle,
@@ -708,7 +715,7 @@
   }
 \cs_new:Npn \@@_point_interpolate_arcaxes_auxi:nnnnnnnnn #1#2#3#4#5#6#7#8#9
   {
-    \@@_point_interpolate_arcaxes_auxii:fnnnnnnnn
+    \@@_point_interpolate_arcaxes_auxii:ennnnnnnn
       { \fp_eval:n {#1} } {#2} {#3} {#4} {#5} {#6} {#7} {#8} {#9}
   }
 %    \end{macrocode}
@@ -730,25 +737,25 @@
 %    \begin{macrocode}
 \cs_new:Npn \@@_point_interpolate_arcaxes_auxii:nnnnnnnnn #1#2#3#4#5#6#7#8#9
   {
-    \@@_point_interpolate_arcaxes_auxiii:fnnnnnn
+    \@@_point_interpolate_arcaxes_auxiii:ennnnnn
       { \fp_eval:n { #1 * (#3) + ( 1 - #1 ) * (#2) } }
       {#4} {#5} {#6} {#7} {#8} {#9}
   }
-\cs_generate_variant:Nn \@@_point_interpolate_arcaxes_auxii:nnnnnnnnn { f }
+\cs_generate_variant:Nn \@@_point_interpolate_arcaxes_auxii:nnnnnnnnn { e }
 \cs_new:Npn \@@_point_interpolate_arcaxes_auxiii:nnnnnnn #1#2#3#4#5#6#7
   {
-    \@@_point_interpolate_arcaxes_auxiv:ffnnnnnn
+    \@@_point_interpolate_arcaxes_auxiv:eennnnnn
       { \fp_eval:n { cosd (#1) } }
       { \fp_eval:n { sind (#1) } }
       {#2} {#3} {#4} {#5} {#6} {#7}
   }
-\cs_generate_variant:Nn \@@_point_interpolate_arcaxes_auxiii:nnnnnnn { f }
+\cs_generate_variant:Nn \@@_point_interpolate_arcaxes_auxiii:nnnnnnn { e }
 \cs_new:Npn \@@_point_interpolate_arcaxes_auxiv:nnnnnnnn #1#2#3#4#5#6#7#8
   {
     \draw_point:n
       { #3 + #1 * #5 + #2 * #7 , #4 + #1 * #6 + #2 * #8 }
   }
-\cs_generate_variant:Nn \@@_point_interpolate_arcaxes_auxiv:nnnnnnnn { ff }
+\cs_generate_variant:Nn \@@_point_interpolate_arcaxes_auxiv:nnnnnnnn { ee }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -761,18 +768,18 @@
 % \begin{macro}[EXP]
 %   {
 %     \draw_point_interpolate_curve_auxii:nnnnnnnnn,
-%     \draw_point_interpolate_curve_auxii:fnnnnnnnn,
+%     \draw_point_interpolate_curve_auxii:ennnnnnnn,
 %   }
 % \begin{macro}[EXP]
 %   {
 %     \draw_point_interpolate_curve_auxiii:nnnnnn,
-%     \draw_point_interpolate_curve_auxiii:fnnnnn,
+%     \draw_point_interpolate_curve_auxiii:ennnnn,
 %   }
 % \begin{macro}[EXP]{\draw_point_interpolate_curve_auxiv:nnnnnn}
 % \begin{macro}[EXP]
 %   {
 %     \draw_point_interpolate_curve_auxv:nnw,
-%     \draw_point_interpolate_curve_auxv:ffw,
+%     \draw_point_interpolate_curve_auxv:eew,
 %   }
 % \begin{macro}[EXP]{\draw_point_interpolate_curve_auxvi:n}
 % \begin{macro}[EXP]{\draw_point_interpolate_curve_auxvii:nnnnnnnn}
@@ -779,7 +786,7 @@
 % \begin{macro}[EXP]
 %   {
 %     \draw_point_interpolate_curve_auxviii:nnnnnn,
-%     \draw_point_interpolate_curve_auxviii:ffnnnn,
+%     \draw_point_interpolate_curve_auxviii:eennnn,
 %   }
 %   Here we start with a proportion of the curve ($p$) and four points
 %   \begin{enumerate}
@@ -798,7 +805,7 @@
   }
 \cs_new:Npn \@@_point_interpolate_curve_auxi:nnnnnnnnn #1#2#3#4#5#6#7#8#9
   {
-    \@@_point_interpolate_curve_auxii:fnnnnnnnn
+    \@@_point_interpolate_curve_auxii:ennnnnnnn
       { \fp_eval:n {#1} }
       {#2} {#3} {#4} {#5} {#6} {#7} {#8} {#9}
   }
@@ -831,15 +838,15 @@
 \cs_new:Npn \@@_point_interpolate_curve_auxii:nnnnnnnnn
   #1#2#3#4#5#6#7#8#9
   {
-    \@@_point_interpolate_curve_auxiii:fnnnnn
+    \@@_point_interpolate_curve_auxiii:ennnnn
       { \fp_eval:n { 1 - #1 } }
       {#1}
       { {#2} {#3} } { {#4} {#5} } { {#6} {#7} } { {#8} {#9} }
   }
-\cs_generate_variant:Nn \@@_point_interpolate_curve_auxii:nnnnnnnnn { f }
+\cs_generate_variant:Nn \@@_point_interpolate_curve_auxii:nnnnnnnnn { e }
 %    \begin{macrocode}
 %   We need to do the first cycle, but haven't got enough arguments to keep
-%   everything in play at once. So her ewe use a but of argument re-ordering
+%   everything in play at once. So here we use a bit of argument re-ordering
 %   and a single auxiliary to get the job done. 
 %    \begin{macrocode}
 \cs_new:Npn \@@_point_interpolate_curve_auxiii:nnnnnn #1#2#3#4#5#6
@@ -850,10 +857,10 @@
     \prg_do_nothing:
     \@@_point_interpolate_curve_auxvi:n { {#1} {#2} }
   }
-\cs_generate_variant:Nn \@@_point_interpolate_curve_auxiii:nnnnnn { f }
+\cs_generate_variant:Nn \@@_point_interpolate_curve_auxiii:nnnnnn { e }
 \cs_new:Npn \@@_point_interpolate_curve_auxiv:nnnnnn #1#2#3#4#5#6
   {
-    \@@_point_interpolate_curve_auxv:ffw
+    \@@_point_interpolate_curve_auxv:eew
       { \fp_eval:n { #1 * #3 + #2 * #5 } }
       { \fp_eval:n { #1 * #4 + #2 * #6 } }
   }
@@ -864,7 +871,7 @@
     \prg_do_nothing:
     #4 { #5 {#1} {#2} }
   }
-\cs_generate_variant:Nn \@@_point_interpolate_curve_auxv:nnw { ff }
+\cs_generate_variant:Nn \@@_point_interpolate_curve_auxv:nnw { ee }
 %    \begin{macrocode}
 %   Get the arguments back into the right places and to the second and
 %   third cycles directly.
@@ -873,7 +880,7 @@
   { \@@_point_interpolate_curve_auxvii:nnnnnnnn #1 }
 \cs_new:Npn \@@_point_interpolate_curve_auxvii:nnnnnnnn #1#2#3#4#5#6#7#8
   {
-    \@@_point_interpolate_curve_auxviii:ffffnn
+    \@@_point_interpolate_curve_auxviii:eeeenn
       { \fp_eval:n { #1 * #5 + #2 * #3 } }
       { \fp_eval:n { #1 * #6 + #2 * #4 } }
       { \fp_eval:n { #1 * #7 + #2 * #5 } }
@@ -885,7 +892,7 @@
     \draw_point:n
       { #5 * #3 + #6 * #1 , #5 * #4 + #6 * #2 }
   }
-\cs_generate_variant:Nn \@@_point_interpolate_curve_auxviii:nnnnnn { ffff }
+\cs_generate_variant:Nn \@@_point_interpolate_curve_auxviii:nnnnnn { eeee }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -954,14 +961,14 @@
 %    \end{macrocode}
 %
 % \begin{macro}[EXP]{\draw_point_vec:nn}
-% \begin{macro}[EXP]{\@@_point_vec:nn, \@@_point_vec:ff}
+% \begin{macro}[EXP]{\@@_point_vec:nn, \@@_point_vec:ee}
 % \begin{macro}[EXP]{\draw_point_vec:nnn}
-% \begin{macro}[EXP]{\@@_point_vec:nnn, \@@_point_vec:fff}
+% \begin{macro}[EXP]{\@@_point_vec:nnn, \@@_point_vec:eee}
 %   Force a single evaluation of each factor, then use these to work out the
 %   underlying point.
 %    \begin{macrocode}
 \cs_new:Npn \draw_point_vec:nn #1#2
-  { \@@_point_vec:ff { \fp_eval:n {#1} } { \fp_eval:n {#2} } }
+  { \@@_point_vec:ee { \fp_eval:n {#1} } { \fp_eval:n {#2} } }
 \cs_new:Npn \@@_point_vec:nn #1#2
   {
     \draw_point:n
@@ -970,10 +977,10 @@
         #1 * \l_@@_xvec_y_dim + #2 * \l_@@_yvec_y_dim
       }
   }
-\cs_generate_variant:Nn \@@_point_vec:nn { ff }
+\cs_generate_variant:Nn \@@_point_vec:nn { ee }
 \cs_new:Npn \draw_point_vec:nnn #1#2#3
   {
-    \@@_point_vec:fff
+    \@@_point_vec:eee
       { \fp_eval:n {#1} } { \fp_eval:n {#2} } { \fp_eval:n {#3} }
   }
 \cs_new:Npn \@@_point_vec:nnn #1#2#3
@@ -980,9 +987,9 @@
   {
     \draw_point:n
       {
-             #1 * \l_@@_xvec_x_dim
-           + #2 * \l_@@_yvec_x_dim
-           + #3 * \l_@@_zvec_x_dim
+            #1 * \l_@@_xvec_x_dim
+          + #2 * \l_@@_yvec_x_dim
+          + #3 * \l_@@_zvec_x_dim
         ,
             #1 * \l_@@_xvec_y_dim
           + #2 * \l_@@_yvec_y_dim
@@ -989,7 +996,7 @@
           + #3 * \l_@@_zvec_y_dim
     }
   }
-\cs_generate_variant:Nn \@@_point_vec:nnn { fff }
+\cs_generate_variant:Nn \@@_point_vec:nnn { eee }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -998,13 +1005,13 @@
 %
 % \begin{macro}[EXP]{\draw_point_vec_polar:nn}
 % \begin{macro}[EXP]{\draw_point_vec_polar:nnn}
-% \begin{macro}[EXP]{\@@_point_vec_polar:nnn, \@@_point_vec_polar:fnn}
+% \begin{macro}[EXP]{\@@_point_vec_polar:nnn, \@@_point_vec_polar:enn}
 %   Much the same as the core polar approach.
 %    \begin{macrocode}
 \cs_new:Npn \draw_point_vec_polar:nn #1#2
   { \draw_point_vec_polar:nnn {#1} {#1} {#2} }
 \cs_new:Npn \draw_point_vec_polar:nnn #1#2#3
-  { \@@_draw_vec_polar:fnn { \fp_eval:n {#3} } {#1} {#2} }
+  { \@@_draw_vec_polar:enn { \fp_eval:n {#3} } {#1} {#2} }
 \cs_new:Npn \@@_draw_vec_polar:nnn #1#2#3
   {
     \draw_point:n
@@ -1011,9 +1018,9 @@
       {
         cosd(#1) * (#2) * \l_@@_xvec_x_dim ,
         sind(#1) * (#3) * \l_@@_yvec_y_dim
-     }
+      }
   }
-\cs_generate_variant:Nn \@@_draw_vec_polar:nnn { f }
+\cs_generate_variant:Nn \@@_draw_vec_polar:nnn { e }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3draw-scopes.dtx
 %
-% Copyright (C) 2018-2023 The LaTeX Project
+% Copyright (C) 2018-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-08}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -210,7 +210,7 @@
           { 0pt }
       }
     \box_set_ht:Nn \l_@@_main_box
-      { \g_@@_ymax_dim + #1 }
+      { \g_@@_ymax_dim - #1 }
   }
 %    \end{macrocode}
 % \end{macro}

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3draw-softpath.dtx
 %
-% Copyright (C) 2018-2023 The LaTeX Project
+% Copyright (C) 2018-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-08}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -109,12 +109,10 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_softpath_use:
   {
-    \tl_build_gend:N \g_@@_softpath_main_tl
-    \tl_set_eq:NN \l_@@_softpath_tmp_tl \g_@@_softpath_main_tl
+    \tl_build_get_intermediate:NN
+      \g_@@_softpath_main_tl
+      \l_@@_softpath_tmp_tl
     \l_@@_softpath_tmp_tl
-    \tl_build_gbegin:N \g_@@_softpath_main_tl
-    \exp_args:NNV \tl_build_gput_right:Nn
-      \g_@@_softpath_main_tl \l_@@_softpath_tmp_tl
   }
 \cs_new_protected:Npn \@@_softpath_clear:
   {
@@ -330,7 +328,7 @@
 % \begin{macro}{\@@_softpath_round_roundpoint:NnnNnnNnn}
 % \begin{macro}{\@@_softpath_round_calc:NnnNnn}
 % \begin{macro}[EXP]
-%   {\@@_softpath_round_calc:nnnnnn, \@@_softpath_round_calc:fVnnnn}
+%   {\@@_softpath_round_calc:nnnnnn, \@@_softpath_round_calc:eVnnnn}
 % \begin{macro}[EXP]{\@@_softpath_round_calc:nnnnw}
 % \begin{macro}{\@@_softpath_round_close:nn}
 % \begin{macro}[EXP]{\@@_softpath_round_close:w}
@@ -509,7 +507,7 @@
     \tl_put_right:Ne \l_@@_softpath_part_tl
       {
         \exp_not:N #4
-        \@@_softpath_round_calc:fVnnnn
+        \@@_softpath_round_calc:eVnnnn
           {
             \draw_point_interpolate_distance:nnn
               \l_@@_softpath_corneri_dim
@@ -535,7 +533,7 @@
     \@@_softpath_round_calc:nnnnw {#3} {#4} {#5} {#6}
       #1 \s_@@_mark #2 \s_@@_stop
   }
-\cs_generate_variant:Nn \@@_softpath_round_calc:nnnnnn { fV }
+\cs_generate_variant:Nn \@@_softpath_round_calc:nnnnnn { eV }
 %    \end{macrocode}
 %   The calculations themselves are relatively straight-forward, as we use a
 %   quadratic Bézier curve.

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3draw-state.dtx
 %
-% Copyright (C) 2018-2023 The LaTeX Project
+% Copyright (C) 2018-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-08}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3draw-transforms.dtx
 %
-% Copyright (C) 2018-2023 The LaTeX Project
+% Copyright (C) 2018-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-08}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -154,10 +154,7 @@
       { \@@_transform_shift_absolute:nn } {#1}
   }
 \cs_new_protected:Npn \@@_transform_shift_absolute:nn #1#2
-  {
-    \dim_set:Nn \l_@@_xshift_dim {#1}
-    \dim_set:Nn \l_@@_yshift_dim {#2}
-  }
+  { \@@_transform_shift:nnnn { 0pt } { 0pt } {#1} {#2} }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -199,8 +196,10 @@
   }
 \cs_new_protected:Npn \@@_transform_shift:nn #1#2
   {
-    \dim_set:Nn \l_@@_xshift_dim { \l_@@_xshift_dim + #1 }
-    \dim_set:Nn \l_@@_yshift_dim { \l_@@_yshift_dim + #2 }
+    \@@_transform_shift:nnnn
+      \l_@@_xshift_dim
+      \l_@@_yshift_dim
+      {#1} {#2}
   }
 %    \end{macrocode}
 % \end{macro}
@@ -208,8 +207,35 @@
 % \end{macro}
 % \end{macro}
 %
+% \begin{macro}{\@@_transform_shift:nnnn}
+%   Apply the current transformation matrix to the shift, then store
+%   the resulting values: we may or may not have a none-zero starting
+%   point here.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_transform_shift:nnnn #1#2#3#4
+  {
+    \dim_set:Nn \l_@@_xshift_dim
+      {
+        \fp_to_dim:n
+          {
+            #1 +
+            ( #3 * \l_@@_matrix_a_fp + #4 * \l_@@_matrix_b_fp )
+          }
+      }
+    \dim_set:Nn \l_@@_yshift_dim
+      {
+        \fp_to_dim:n
+          {
+            #2 +
+            ( #3 * \l_@@_matrix_c_fp + #4 * \l_@@_matrix_d_fp )
+          }
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+%
 % \begin{macro}{\draw_transform_matrix_invert:}
-% \begin{macro}{\@@_transform_invert:n, \@@_transform_invert:f}
+% \begin{macro}{\@@_transform_invert:n, \@@_transform_invert:e}
 % \begin{macro}{\draw_transform_shift_invert:}
 %   Standard mathematics: calculate the inverse matrix and use that, then
 %   undo the shifts.
@@ -218,7 +244,7 @@
   {
     \bool_if:NT \l_@@_matrix_active_bool
       {
-        \@@_transform_invert:f
+        \@@_transform_invert:e
           {
             \fp_eval:n
               { 
@@ -242,7 +268,7 @@
     \fp_set:Nn \l_@@_matrix_d_fp
       { \l_@@_matrix_a_fp * #1 }
   }
-\cs_generate_variant:Nn \@@_transform_invert:n { f }
+\cs_generate_variant:Nn \@@_transform_invert:n { e }
 \cs_new_protected:Npn \draw_transform_shift_invert:
   {
     \dim_set:Nn \l_@@_xshift_dim { -\l_@@_xshift_dim }
@@ -312,24 +338,24 @@
 % \begin{macro}{\draw_transform_rotate:n}
 % \begin{macro}
 %   {
-%     \@@_transform_rotate:n, \@@_transform_rotate:f,
-%     \@@_transform_rotate:nn, \@@_transform_rotate:ff
+%     \@@_transform_rotate:n, \@@_transform_rotate:e,
+%     \@@_transform_rotate:nn, \@@_transform_rotate:ee
 %   } 
 %   Slightly more involved: evaluate the angle only once, and the sine and
 %   cosine only once.
 %    \begin{macrocode}
 \cs_new_protected:Npn \draw_transform_rotate:n #1
-  { \@@_transform_rotate:f { \fp_eval:n {#1} } }
+  { \@@_transform_rotate:e { \fp_eval:n {#1} } }
 \cs_new_protected:Npn \@@_transform_rotate:n #1
   {
-    \@@_transform_rotate:ff 
+    \@@_transform_rotate:ee
       { \fp_eval:n { cosd(#1) } }
       { \fp_eval:n { sind(#1) } }
   }
-\cs_generate_variant:Nn \@@_transform_rotate:n { f }
+\cs_generate_variant:Nn \@@_transform_rotate:n { e }
 \cs_new_protected:Npn \@@_transform_rotate:nn #1#2
   { \draw_transform_matrix:nnnn {#1} {#2} { -#2 } { #1 } }
-\cs_generate_variant:Nn \@@_transform_rotate:nn { ff }
+\cs_generate_variant:Nn \@@_transform_rotate:nn { ee }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3draw.dtx
 %
-% Copyright(C) 2018-2023 The LaTeX Project
+% Copyright(C) 2018-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -50,10 +50,10 @@
 \newcommand*\demo at common{%
   \setkeys{lst}
     {%
-       basicstyle   = \small\ttfamily,
-       basewidth    = 0.51em,
-       gobble       = 5,
-       language     = [LaTeX]{TeX},
+      basicstyle   = \small\ttfamily,
+      basewidth    = 0.51em,
+      gobble       = 5,
+      language     = [LaTeX]{TeX},
     }%
 }
 \newcommand*\demo at input{%
@@ -110,7 +110,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-08}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -259,7 +259,7 @@
 % will appear. Note that these all apply \emph{globally}, though some are
 % rest at the start of each drawing (\cs{draw_begin:}).
 %
-% \begin{variable}{\g_draw_linewidth_default_dim}
+% \begin{variable}{\l_draw_default_linewidth_dim}
 %   The default value of the linewidth for stokes, set at the start
 %   of every drawing (\cs{draw_begin:}).
 % \end{variable}
@@ -369,7 +369,7 @@
 %   \end{syntax}
 %   Creates a scope for localisation of state settings within a drawing.
 %   A scope forms a \TeX{} group but will also localise global state
-%   variables (such as \cs{g_draw_linewidth_default_dim}), and driver-level
+%   variables (such as \cs{l_draw_default_linewidth_dim}), and driver-level
 %   concepts such as the termination of lines.
 %   \begin{demo}
 %     \draw_begin:
@@ -1046,7 +1046,8 @@
 %   \end{syntax}
 %   Applies the transformation \meta{vector} to points.
 %   The basic applies the vector in addition to those active; the
-%   |absolute| version overwrites any active vector.
+%   |absolute| version overwrites any active vector. Any active
+%   transformation matrix is applied to the shifts each time they are adjusted.
 %   This assignment is local.
 % \end{function}
 %
@@ -1180,7 +1181,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{l3draw}{2023-12-08}{}
+\ProvidesExplPackage{l3draw}{2024-01-04}{}
   {L3 Experimental core drawing support}
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.ins	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.ins	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 
 File: l3draw.ins
 
-Copyright (C) 2018-2023 The LaTeX Project
+Copyright (C) 2018-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of the
 LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -34,7 +34,7 @@
 
 \preamble
 
-Copyright (C) 2018-2023 The LaTeX Project
+Copyright (C) 2018-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of
 the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3graphics.dtx
 %
-% Copyright (C) 2017-2023 The LaTeX Project
+% Copyright (C) 2017-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-08}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -184,7 +184,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{l3graphics}{2023-12-08}{}
+\ProvidesExplPackage{l3graphics}{2024-01-04}{}
   {L3 Experimental graphics inclusion support}
 %    \end{macrocode}
 %
@@ -237,7 +237,7 @@
       { art , bleed , crop , media , trim }
       {
         \tl_set:Ne \l_@@_pagebox_tl
-           { \l_keys_choice_tl box }
+          { \l_keys_choice_tl box }
       } ,
     pagebox .initial:n =
       crop ,
@@ -536,8 +536,8 @@
             \exp_args:Ne \str_tail:n
               { \str_casefold:V \l_@@_ext_str }
           }
-       }
-       { \@@_include_auxi:e { \l_@@_type_str } }
+      }
+      { \@@_include_auxi:e { \l_@@_type_str } }
   }
 \cs_new_protected:Npn \@@_include_auxi:n #1
   {
@@ -553,7 +553,7 @@
       {
         \tl_set_eq:NN \l_@@_final_name_str \l_@@_full_name_str
         \str_set:Ne \l_@@_full_name_str
-         { \exp_args:NV \__kernel_file_name_quote:n \l_@@_full_name_str }
+          { \exp_args:NV \__kernel_file_name_quote:n \l_@@_full_name_str }
         \exp_args:NnV \use:c { @@_backend_getbb_ #1 :n }
           \l_@@_full_name_str
         \seq_gput_right:NV \g_@@_record_seq \l_@@_final_name_str
@@ -601,7 +601,7 @@
     \box_set_dp:Nn \l_@@_internal_box { 0pt }
     \box_set_ht:Nn \l_@@_internal_box
       { \l_@@_ury_dim - \l_@@_lly_dim }
-     \box_set_wd:Nn \l_@@_internal_box
+    \box_set_wd:Nn \l_@@_internal_box
       { \l_@@_urx_dim - \l_@@_llx_dim }
     \box_use_drop:N \l_@@_internal_box
   }

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.ins	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.ins	2024-01-05 21:44:47 UTC (rev 69310)
@@ -1,6 +1,6 @@
 \iffalse meta-comment
 
-File l3graphics.ins Copyright (C) 2017,2019-2023 The LaTeX Project
+File l3graphics.ins Copyright (C) 2017,2019-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of the
 LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -32,7 +32,7 @@
 
 \preamble
 
-Copyright (C) 2019-2023 The LaTeX Project
+Copyright (C) 2019-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of
 the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3opacity.dtx
 %
-% Copyright (C) 2021-2023 The LaTeX Project
+% Copyright (C) 2021-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -34,7 +34,7 @@
 % \fi
 %
 % \title{^^A
-%   The \textsf{l3opacity} package\\ Experimental opacity (transparency) support^^A
+%   The \pkg{l3opacity} package\\ Experimental opacity (transparency) support^^A
 % }
 %
 % \author{^^A
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-08}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -96,7 +96,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{l3opacity}{2023-12-08}{}
+\ProvidesExplPackage{l3opacity}{2024-01-04}{}
   {L3 Experimental opacity support}
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.ins	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.ins	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 
 File: l3opacity.ins
 
-Copyright (C) 2021-2023 The LaTeX Project
+Copyright (C) 2021-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of the
 LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -34,7 +34,7 @@
 
 \preamble
 
-Copyright (C) 2021-2023 The LaTeX Project
+Copyright (C) 2021-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of
 the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3str-format.dtx
 %
-% Copyright (C) 2012-2023 The LaTeX Project
+% Copyright (C) 2012-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -36,7 +36,7 @@
 %
 %
 % \title{^^A
-%   The \textsf{l3str-format} package: formatting strings of characters^^A
+%   The \pkg{l3str-format} package\\ Formatting strings of characters^^A
 % }
 %
 % \author{^^A
@@ -48,7 +48,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-08}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -166,7 +166,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{l3str-format}{2023-12-08}{}
+\ProvidesExplPackage{l3str-format}{2024-01-04}{}
   {L3 Experimental string formatting}
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str.ins	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str.ins	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 
 File l3str.ins
 
-Copyright (C) 2011-2017,2019-2023 The LaTeX Project
+Copyright (C) 2011-2017,2019-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of the
 LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -34,7 +34,7 @@
 
 \preamble
 
-Copyright (C) 2011-2023 The LaTeX Project
+Copyright (C) 2011-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of
 the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3sys-shell.dtx
 %
-% Copyright (C) 2018-2023 The LaTeX Project
+% Copyright (C) 2018-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-08}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -151,7 +151,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{l3sys-shell}{2023-12-08}{}
+\ProvidesExplPackage{l3sys-shell}{2024-01-04}{}
   {L3 Experimental system shell functions}
 %    \end{macrocode}
 %
@@ -201,7 +201,7 @@
         \token_if_eq_meaning:NNTF #1 /
           { \c_backslash_str }
           {#1}
-         \@@_path_to_win:N
+        \@@_path_to_win:N
       }
   }
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.ins	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.ins	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 
 File: l3sys-shell.ins
 
-Copyright (C) 2018-2023 The LaTeX Project
+Copyright (C) 2018-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of the
 LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -34,7 +34,7 @@
 
 \preamble
 
-Copyright (C) 2018-2023 The LaTeX Project
+Copyright (C) 2018-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of
 the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: xcoffins.dtx
 %
-% Copyright (C) 2010-2023 The LaTeX Project
+% Copyright (C) 2010-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -41,7 +41,7 @@
 % \fi
 %
 % \title{^^A
-%   The \textsf{xcoffins} package\\ Design-level coffins^^A
+%   The \pkg{xcoffins} package\\ Design-level coffins^^A
 % }
 %
 % \author{^^A
@@ -53,7 +53,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-08}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -672,7 +672,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{xcoffins}{2023-12-08}{}
+\ProvidesExplPackage{xcoffins}{2024-01-04}{}
   {L3 Experimental design level coffins}
 %    \end{macrocode}
 %
@@ -859,9 +859,9 @@
 %    \begin{macrocode}
 \NewDocumentCommand \TypesetCoffin
   {
-     m
-     > { \SplitArgument { 1 } { , } } O { H , l }
-     > { \SplitArgument { 1 } { , } } D ( ) { 0 pt , 0 pt }
+    m
+    > { \SplitArgument { 1 } { , } } O { H , l }
+    > { \SplitArgument { 1 } { , } } D ( ) { 0 pt , 0 pt }
   }
   { \coffin_typeset:Nnnnn #1 #2 #3 }
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.ins	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.ins	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 
 File: xcoffins.ins
 
-Copyright (C) 2010,2011,2012,2016,2017,2019-2023 The LaTeX Project
+Copyright (C) 2010,2011,2012,2016,2017,2019-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of the
 LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -34,7 +34,7 @@
 
 \preamble
 
-Copyright (C) 2010-2023 The LaTeX Project
+Copyright (C) 2010-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of
 the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -3,7 +3,7 @@
 %% File: l3galley.dtx
 %
 % Copyright (C) 1999-2001,2004-2009 Frank Mittelbach
-%           (C) 2010-2023 The LaTeX Project
+%           (C) 2010-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -49,7 +49,7 @@
 % \fi
 %
 % \title{^^A
-%   The \textsf{l3galley} package\\ Galley code^^A
+%   The \pkg{l3galley} package\\ Galley code^^A
 % }
 %
 % \author{^^A
@@ -61,7 +61,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-08}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -686,7 +686,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{l3galley}{2023-12-08}{}
+\ProvidesExplPackage{l3galley}{2024-01-04}{}
   {L3 Experimental galley code}
 %    \end{macrocode}
 %
@@ -1323,27 +1323,27 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_display_penalty:N #1
   {
-     \tl_if_empty:NF #1
-       {
-         \tl_gput_right:Ne \g_galley_restore_running_tl
-           {
-             \int_gset:Nn \exp_not:N \g_galley_penalty_int
-               { \int_use:N \g_galley_penalty_int }
-           }
-         \int_gset:Nn \g_galley_penalty_int {#1}
-       }
+    \tl_if_empty:NF #1
+      {
+        \tl_gput_right:Ne \g_galley_restore_running_tl
+          {
+            \int_gset:Nn \exp_not:N \g_galley_penalty_int
+              { \int_use:N \g_galley_penalty_int }
+          }
+        \int_gset:Nn \g_galley_penalty_int {#1}
+      }
   }
 \cs_new_protected:Npn \@@_display_vspace:N #1
   {
-     \tl_if_empty:NF #1
-       {
-         \tl_gput_right:Ne \g_galley_restore_running_tl
-           {
-             \skip_gset:Nn \exp_not:N \g_galley_vspace_skip
-               { \skip_use:N \g_galley_vspace_skip }
-           }
-         \skip_gset:Nn \g_galley_vspace_int {#1}
-       }
+    \tl_if_empty:NF #1
+      {
+        \tl_gput_right:Ne \g_galley_restore_running_tl
+          {
+            \skip_gset:Nn \exp_not:N \g_galley_vspace_skip
+              { \skip_use:N \g_galley_vspace_skip }
+          }
+        \skip_gset:Nn \g_galley_vspace_int {#1}
+      }
   }
 %    \end{macrocode}
 %   The \cs{par} token at the end of the display needs to go in at the same
@@ -1896,7 +1896,7 @@
         \seq_get_right:NNF \g_@@_tmpb_seq \l_@@_tmp_tl
           { \tl_clear:N \l_@@_tmp_tl }
         \tl_if_empty:NT \l_@@_tmp_tl
-         { \tl_set:Nn \l_@@_tmp_tl { 0pt } }
+          { \tl_set:Nn \l_@@_tmp_tl { 0pt } }
         \int_set:Nn \l_@@_tmp_int
           {
               \seq_count:N \g_@@_tmpa_seq

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -3,7 +3,7 @@
 %% File: xgalley.dtx
 %
 % Copyright (C) 1999-2001,2004-2009 Frank Mittelbach
-%           (C) 2010-2012,2014,2016-2023 The LaTeX Project
+%           (C) 2010-2012,2014,2016-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -32,7 +32,7 @@
 % \fi
 %
 % \title{^^A
-%   The \textsf{xgalley} package\\ Galley^^A
+%   The \pkg{xgalley} package\\ Galley^^A
 % }
 %
 % \author{^^A
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-08}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -731,7 +731,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{xgalley}{2023-12-08}{}
+\ProvidesExplPackage{xgalley}{2024-01-04}{}
   {L3 Experimental galley}
 \RequirePackage{xtemplate,l3galley}
 %    \end{macrocode}
@@ -829,7 +829,7 @@
     lines        : integer = 1
   }
 \DeclareTemplateInterface { parshape } { initial } { 0 }
- {
+  {
     indent       : length  = 0pt  ,
     on-left-side : boolean = true ,
     lines        : integer = 2

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.ins	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.ins	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 
 File: xgalley.ins
 
-Copyright (C) 2010-2012,2016,2017,2019-2023 The LaTeX Project
+Copyright (C) 2010-2012,2016,2017,2019-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of the
 LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -34,7 +34,7 @@
 
 \preamble
 
-Copyright (C) 2010-2023 The LaTeX Project
+Copyright (C) 2010-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of
 the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: expl3.dtx
 %
-% Copyright (C) 1990-2023 The LaTeX Project
+% Copyright (C) 1990-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -24,7 +24,7 @@
 %
 %<*driver|generic|package|2ekernel>
 %</driver|generic|package|2ekernel>
-\def\ExplFileDate{2023-12-11}%
+\def\ExplFileDate{2024-01-04}%
 %<*driver>
 \documentclass[full]{l3doc}
 \usepackage{graphicx}
@@ -51,7 +51,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3.ins	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3.ins	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 
 File l3.ins
 
-Copyright (C) 2011,2012,2014-2023 The LaTeX Project
+Copyright (C) 2011,2012,2014-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of the
 LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -35,7 +35,7 @@
 
 \preamble
 
-Copyright (C) 1990-2023 The LaTeX Project
+Copyright (C) 1990-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of
 the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -152,14 +152,12 @@
 
 \generate{\file{l3names.def}      {\from{l3names.dtx}     {names}}}
 
-\generate{\file{l3bitset.sty}     {\from{l3bitset.dtx}    {stub}}}
-
 % Lua code
 
 \def\MetaPrefix{--}
 \preamble
 
-Copyright (C) 1990-2023 The LaTeX Project
+Copyright (C) 1990-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of
 the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3basics.dtx
 %
-% Copyright (C) 1990-2023 The LaTeX Project
+% Copyright (C) 1990-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3basics} package\\ Basic definitions^^A
+%   The \pkg{l3basics} module\\ Basic definitions^^A
 % }
 %
 % \author{^^A
@@ -43,17 +43,17 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
 % \begin{documentation}
 %
-% As the name suggest this package holds some basic definitions which
-% are needed by most or all other packages in this set.
+% As the name suggests, this module holds some basic definitions which
+% are needed by most or all other modules in this set.
 %
-% Here we describe those functions that are used all over the place. With
-% that we mean functions dealing with the construction and testing of
+% Here we describe those functions that are used all over the place.
+% By that, we mean functions dealing with the construction and testing of
 % control sequences. Furthermore the basic parts of conditional
 % processing are covered; conditional processing dealing with specific
 % data types is described in the modules specific for the respective
@@ -957,7 +957,7 @@
 % \begin{function}[EXP]
 %   {
 %     \use_i:nn, \use_ii:nn ,
-%     \use_i:nnn , \use_ii:nnn , \use_iii:nnn , \use_i_ii:nnn ,
+%     \use_i:nnn , \use_ii:nnn , \use_iii:nnn ,
 %     \use_i:nnnn, \use_ii:nnnn, \use_iii:nnnn, \use_iv:nnnn  ,
 %     \use_i:nnnnn, \use_ii:nnnnn, \use_iii:nnnnn, \use_iv:nnnnn ,
 %       \use_v:nnnnn ,
@@ -966,7 +966,7 @@
 %     \use_i:nnnnnnn, \use_ii:nnnnnnn, \use_iii:nnnnnnn, \use_iv:nnnnnnn ,
 %       \use_v:nnnnnnn , \use_vi:nnnnnnn , \use_vii:nnnnnnn ,
 %     \use_i:nnnnnnnn, \use_ii:nnnnnnnn, \use_iii:nnnnnnnn, \use_iv:nnnnnnnn ,
-%       \use_v:nnnnnnnn , \use_vi:nnnnnnnn , \use_vii:nnnnnnnn , \use_vii:nnnnnnnn ,
+%       \use_v:nnnnnnnn , \use_vi:nnnnnnnn , \use_vii:nnnnnnnn , \use_viii:nnnnnnnn ,
 %     \use_i:nnnnnnnnn, \use_ii:nnnnnnnnn, \use_iii:nnnnnnnnn, \use_iv:nnnnnnnnn ,
 %       \use_v:nnnnnnnnn , \use_vi:nnnnnnnnn , \use_vii:nnnnnnnnn , \use_viii:nnnnnnnnn ,
 %       \use_ix:nnnnnnnnn
@@ -1678,7 +1678,7 @@
 %
 % \begin{macro}[EXP]
 %   {
-%     \use_i:nnn , \use_ii:nnn , \use_iii:nnn , \use_i_ii:nnn ,
+%     \use_i:nnn , \use_ii:nnn , \use_iii:nnn ,
 %     \use_i:nnnn, \use_ii:nnnn, \use_iii:nnnn, \use_iv:nnnn  ,
 %     \use_i:nnnnn, \use_ii:nnnnn, \use_iii:nnnnn, \use_iv:nnnnn ,
 %       \use_v:nnnnn ,
@@ -1687,7 +1687,7 @@
 %     \use_i:nnnnnnn, \use_ii:nnnnnnn, \use_iii:nnnnnnn, \use_iv:nnnnnnn ,
 %       \use_v:nnnnnnn , \use_vi:nnnnnnn , \use_vii:nnnnnnn ,
 %     \use_i:nnnnnnnn, \use_ii:nnnnnnnn, \use_iii:nnnnnnnn, \use_iv:nnnnnnnn ,
-%       \use_v:nnnnnnnn , \use_vi:nnnnnnnn , \use_vii:nnnnnnnn , \use_vii:nnnnnnnn ,
+%       \use_v:nnnnnnnn , \use_vi:nnnnnnnn , \use_vii:nnnnnnnn , \use_viii:nnnnnnnn ,
 %     \use_i:nnnnnnnnn, \use_ii:nnnnnnnnn, \use_iii:nnnnnnnnn, \use_iv:nnnnnnnnn ,
 %       \use_v:nnnnnnnnn , \use_vi:nnnnnnnnn , \use_vii:nnnnnnnnn , \use_viii:nnnnnnnnn ,
 %       \use_ix:nnnnnnnnn
@@ -1697,7 +1697,6 @@
 \cs_set:Npn \use_i:nnn    #1#2#3 {#1}
 \cs_set:Npn \use_ii:nnn   #1#2#3 {#2}
 \cs_set:Npn \use_iii:nnn  #1#2#3 {#3}
-\cs_set:Npn \use_i_ii:nnn #1#2#3 {#1#2}
 \cs_set:Npn \use_i:nnnn   #1#2#3#4 {#1}
 \cs_set:Npn \use_ii:nnnn  #1#2#3#4 {#2}
 \cs_set:Npn \use_iii:nnnn #1#2#3#4 {#3}
@@ -1740,6 +1739,12 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}[EXP]{\use_i_ii:nnn}
+%    \begin{macrocode}
+\cs_set:Npn \use_i_ii:nnn #1#2#3 {#1#2}
+%    \end{macrocode}
+% \end{macro}
+%
 % \begin{macro}[EXP]{\use_ii_i:nn}
 %    \begin{macrocode}
 \cs_set:Npn \use_ii_i:nn #1#2 { #2 #1 }
@@ -2656,9 +2661,9 @@
 \cs_set:Npn \@@_tmp:w #1#2
   {
     \cs_set_protected:Npn #1 ##1
-       {
-         \__kernel_chk_if_free_cs:N ##1
-         #2 ##1
+      {
+        \__kernel_chk_if_free_cs:N ##1
+        #2 ##1
       }
   }
 \@@_tmp:w \cs_new_nopar:Npn           \cs_gset_nopar:Npn

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3bitset.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3bitset.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3bitset.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3bitset.dtx
 %
-% Copyright (C) 2020-2023 The LaTeX Project
+% Copyright (C) 2020-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -30,7 +30,7 @@
 %</driver>
 % \fi
 % \title{^^A
-%   The \pkg{l3bitset} package\\ Bitsets^^A
+%   The \pkg{l3bitset} module\\ Bitsets^^A
 % }
 %
 % \author{^^A
@@ -42,13 +42,13 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
 % \begin{documentation}
 %
-% This package defines and implements the data type \texttt{bitset}, a vector of
+% This module defines and implements the data type \texttt{bitset}, a vector of
 % bits. The size of the vector may grow dynamically.
 % Individual bits can be set and unset by names pointing to an index position.
 % The names |1|, |2|, |3|, \ldots\ are predeclared and point to the
@@ -64,11 +64,11 @@
 % The bitset is stored as a string (but one shouldn't rely on the internal
 % representation) and so the vector size is theoretically
 % unlimited, only restricted by \TeX-memory. But the functions to set and clear
-% bits uses integer functions for the index so bitsets can't be longer
+% bits use integer functions for the index so bitsets can't be longer
 % than $2^{31} - 1$.
 % The export function
 % \cs{bitset_to_arabic:N} can use functions from the \texttt{int} module only if
-% the largest index used for this bitset is smaller then $32$, for longer
+% the largest index used for this bitset is smaller than $32$, for longer
 % bitsets \texttt{fp} is used and this is slower.
 %
 % \section{Creating bitsets}
@@ -79,8 +79,8 @@
 %     \cs{bitset_new:N}  \meta{bitset var} \\
 %     \cs{bitset_new:Nn} \meta{bitset var}
 %     ~~\{
-%     ~~~~\meta{name1} |=| \meta{index1} |,|
-%     ~~~~\meta{name2} |=| \meta{index2} |,| \ldots{}
+%     ~~~~\meta{name_1} |=| \meta{index_1} |,|
+%     ~~~~\meta{name_2} |=| \meta{index_2} |,| \ldots{}
 %     ~~\}
 %   \end{syntax}
 % Creates a new \meta{bitset var} or raises an error if the name is already taken.
@@ -101,7 +101,7 @@
 %
 % \meta{index\ldots} should be a positive number or an
 % \meta{integer expression} which evaluates to a positive number.
-% The expression is evaluated when the index is used, not a declaration time.
+% The expression is evaluated when the index is used, not at declaration time.
 % The names \meta{name\ldots}
 % should be unique. Using a number as name, e.g.~|10=1|, is allowed, it
 % then overwrites the predeclared name |10|,
@@ -117,8 +117,8 @@
 %   \begin{syntax}
 %     \cs{bitset_addto_named_index:Nn} \meta{bitset var}
 %     ~~\{
-%     ~~~~\meta{name1} |=| \meta{index1} |,|
-%     ~~~~\meta{name2} |=| \meta{index2} |,| \ldots{}
+%     ~~~~\meta{name_1} |=| \meta{index_1} |,|
+%     ~~~~\meta{name_2} |=| \meta{index_2} |,| \ldots{}
 %     ~~\}
 %   \end{syntax}
 %   This extends or changes the name--index pairs for \meta{bitset var}
@@ -145,7 +145,7 @@
 %       print = 3
 %     }
 % \end{verbatim}
-% it is possible to set bit $3$ by using any of this alternatives:
+% it is possible to set bit $3$ by using any of these alternatives:
 % \begin{verbatim}
 %   \bitset_set_true:Nn \l_pdfannot_F_bitset {Print}
 %   \bitset_set_true:Nn \l_pdfannot_F_bitset {print}
@@ -156,7 +156,7 @@
 %   {\bitset_if_exist:N, \bitset_if_exist:c}
 %   \begin{syntax}
 %     \cs{bitset_if_exist_p:N} \meta{bitset var}
-%     \cs{bitset_if_exist:NTF} \meta{bitset var} \Arg{true code} \Arg{false code}%
+%     \cs{bitset_if_exist:NTF} \meta{bitset var} \Arg{true code} \Arg{false code}
 %   \end{syntax}
 %   Tests whether the \meta{bitset var} exist.
 % \end{function}
@@ -172,7 +172,7 @@
 %     \cs{bitset_set_true:Nn} \meta{bitset var} \Arg{name}
 %   \end{syntax}
 %   This sets the bit of the index position represented by \Arg{name} to $1$.
-%   \Arg{name} should be either one of the predeclared names
+%   \meta{name} should be either one of the predeclared names
 %   |1|, |2|, |3|, \ldots, or one of the names added manually.
 %   Index position are 1-based.
 %   If needed the length of the bit vector is enlarged.
@@ -188,7 +188,7 @@
 %   \end{syntax}
 %   This unsets the bit of the index position represented by \Arg{name} (sets
 %   it to $0$).
-%   \Arg{name} should be either one of the predeclared names
+%   \meta{name} should be either one of the predeclared names
 %   |1|, |2|, |3|, \ldots, or one of the names added manually.
 %   The index is $1$-based. If the index position is larger
 %   than the current length of the bit vector
@@ -213,8 +213,8 @@
 %     \cs{bitset_item:Nn} \meta{bitset var} \Arg{name}
 %   \end{syntax}
 % \cs{bitset_item:Nn} outputs \texttt{1} if the bit with
-% the index number represented by \Arg{name} is set and \texttt{0} otherwise.
-%  \Arg{name} is either one of the predeclared names
+% the index number represented by \meta{name} is set and \texttt{0} otherwise.
+%  \meta{name} is either one of the predeclared names
 % |1|, |2|, |3|, \ldots, or one of the names added manually.
 % \end{function}
 %
@@ -236,8 +236,8 @@
 %   This leaves the current value of the bitset expressed as
 %   a decimal number in the input stream. If no bit has been set yet,
 %   the output is zero. The function uses \cs{int_from_bin:n} if the largest
-%   index that have been set or unset is smaller then $32$, and a slower implementation
-%   based on \cs{fp_eval:n} otherwise.
+%   index that have been set or unset is smaller than $32$, and a slower
+%   implementation based on \cs{fp_eval:n} otherwise.
 % \end{function}
 %
 % \begin{function}[added = 2023-11-15]
@@ -245,7 +245,8 @@
 %   \begin{syntax}
 %     \cs{bitset_show:N} \meta{bitset var}
 %   \end{syntax}
-%   Displays the binary and decimal value of the \meta{bitset var} on the terminal,
+%   Displays the binary and decimal values of the \meta{bitset var}
+%   on the terminal.
 % \end{function}
 %
 % \begin{function}[added = 2023-11-15]
@@ -253,9 +254,32 @@
 %   \begin{syntax}
 %     \cs{bitset_log:N} \meta{bitset var}
 %   \end{syntax}
-%   Writes the value of the \meta{bitset var} in the log file.
+%   Writes the binary and decimal values of the \meta{bitset var}
+%   in the log file.
 % \end{function}
 %
+% \begin{function}[added = 2023-11-15]
+%  {
+%     \bitset_show_named_index:N, \bitset_show_named_index:c
+%  }
+%   \begin{syntax}
+%     \cs{bitset_show_named_index:N} \meta{bitset var}
+%   \end{syntax}
+%   Displays declared name--index pairs of the \meta{bitset var}
+%   on the terminal.
+% \end{function}
+%
+% \begin{function}[added = 2023-12-11]
+%  {
+%     \bitset_log_named_index:N, \bitset_log_named_index:c
+%  }
+%   \begin{syntax}
+%     \cs{bitset_log_named_index:N} \meta{bitset var}
+%   \end{syntax}
+%   Writes declared name--index pairs of the \meta{bitset var}
+%   in the log file.
+% \end{function}
+%
 % \end{documentation}
 %
 % \begin{implementation}
@@ -270,6 +294,15 @@
 %<@@=bitset>
 %    \end{macrocode}
 %
+% Transitional support.
+%    \begin{macrocode}
+\cs_if_exist:NT \@expl at finalise@setup@@@@
+  {
+    \tl_gput_right:Nn \@expl at finalise@setup@@@@
+      { \declare at file@substitution { l3bitset.sty } { null.tex } }
+  }
+%    \end{macrocode}
+%
 % A bitset is a string variable.
 %  \begin{macro}{\bitset_new:N, \bitset_new:c}
 %  \begin{macro}{\bitset_new:Nn, \bitset_new:cn}
@@ -280,7 +313,6 @@
     \cs_gset_eq:NN #1 \c_zero_str
     \prop_new:c { g__bitset_ \cs_to_str:N #1 _name_prop }
   }
-
 \cs_new_protected:Npn \bitset_new:Nn #1 #2
   {
     \__kernel_chk_if_free_cs:N #1
@@ -287,33 +319,21 @@
     \cs_gset_eq:NN #1 \c_zero_str
     \prop_new:c { g__bitset_ \cs_to_str:N #1 _name_prop }
     \prop_gset_from_keyval:cn
-       { g__bitset_ \cs_to_str:N #1 _name_prop }
-       {#2}
+      { g__bitset_ \cs_to_str:N #1 _name_prop }
+      {#2}
   }
 \cs_generate_variant:Nn \bitset_new:N { c }
+\cs_generate_variant:Nn \bitset_new:Nn { c }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 %
-% \begin{variable}{\l_@@_tmp_prop}
-% A scratch prop to be able to extend the names properties.
-%    \begin{macrocode}
-\prop_new:N \l_@@_tmp_prop
-%    \end{macrocode}
-% \end{variable}
-%
 % \begin{macro}{\bitset_addto_named_index:Nn}
 %    \begin{macrocode}
 \cs_new_protected:Npn \bitset_addto_named_index:Nn #1#2
   {
-     \prop_set_from_keyval:Nn \l_@@_tmp_prop {#2}
-     \prop_map_inline:Nn \l_@@_tmp_prop
-       {
-         \prop_gput:cnn
-           { g_@@_ \cs_to_str:N #1 _name_prop }
-           {##1}
-           {##2}
-       }
+    \prop_gput_from_keyval:cn
+      { g_@@_ \cs_to_str:N #1 _name_prop } { #2 }
   }
 %    \end{macrocode}
 % \end{macro}
@@ -329,6 +349,7 @@
   \bitset_if_exist:c \str_if_exist:c { p , T , F , TF }
 %    \end{macrocode}
 % \end{macro}
+%
 % \begin{macro}{\@@_set_true:Nn, \@@_gset_true:Nn, \@@_set_false:Nn, \@@_gset_false:Nn}
 % \begin{macro}{\@@_set:NNnN}
 % The internal command uses only numbers (integer expressions) for the
@@ -358,12 +379,12 @@
               }
           }
           {
-             #1 #2
+            #1 #2
               {
                 \str_range:Nnn #2 { 1 } { -1 - (#3) }
                 #4
                 \str_range:Nnn #2 { 1 - (#3) } { -1 }
-             }
+              }
           }
       }
   }
@@ -379,7 +400,7 @@
 %
 % \begin{macro}[TF]{\@@_test_digits:n}
 % \begin{macro}{\@@_test_digits_end:n}
-% \begin{macro}{\@@_test_digits:wn}
+% \begin{macro}{\@@_test_digits:w}
 %   \url{https://chat.stackexchange.com/transcript/message/56878159#56878159}
 %    \begin{macrocode}
 \prg_new_protected_conditional:Npnn \@@_test_digits:n #1 { TF }
@@ -468,14 +489,16 @@
 \cs_generate_variant:Nn \bitset_gclear:N { c }
 %    \end{macrocode}
 % \end{macro}
-% \begin{macro}
+%
+% \begin{macro}[EXP]
 %   {
 %     \bitset_to_arabic:N, \bitset_to_arabic:c,
 %     \bitset_to_bin:N,    \bitset_to_bin:c,
 %   }
+% \begin{macro}[EXP]{\@@_to_int:nN}
 %   The naming of the commands follow the names in the \texttt{int} module.
 %   \cs{bitset_to_arabic:N} uses \cs{int_from_bin:n} if the string is shorter
-%   then $32$ and the slower \cs{fp_eval} for larger bitsets.
+%   than $32$ and the slower \cs{fp_eval:n} for larger bitsets.
 %    \begin{macrocode}
 \cs_new:Npn \bitset_to_arabic:N #1
   {
@@ -486,13 +509,11 @@
         #1 \q_recursion_tail \q_recursion_stop
       }
   }
-
 \cs_new:Npn \@@_to_int:nN #1#2
   {
     \quark_if_recursion_tail_stop_do:Nn #2 {#1}
     \exp_args:Nf \@@_to_int:nN { \fp_eval:n { #1 * 2 + #2 } }
   }
-
 \cs_new:Npn \bitset_to_bin:N #1
   {
     #1
@@ -501,6 +522,8 @@
 \cs_generate_variant:Nn \bitset_to_bin:N { c }
 %    \end{macrocode}
 % \end{macro}
+% \end{macro}
+%
 % \begin{macro}
 %   {
 %     \bitset_item:Nn, \bitset_item:cn
@@ -518,10 +541,10 @@
               { 0 - ( \prop_item:cn { g_@@_ \cs_to_str:N #1 _name_prop } {#2} ) }
             +0
           }
-     }
-     {
-       0
-     }
+      }
+      {
+        0
+      }
   }
 \cs_generate_variant:Nn \bitset_item:Nn { c }
 %    \end{macrocode}
@@ -537,28 +560,40 @@
 \cs_generate_variant:Nn \bitset_show:N { c }
 \cs_new_protected:Npn   \bitset_log:N  { \@@_show:NN \msg_log:nneeee }
 \cs_generate_variant:Nn \bitset_log:N  { c }
-\cs_new_protected:Npn   \bitset_show_named_index:N { \@@_show_named_index:NN \msg_show:nneeee }
-\cs_generate_variant:Nn \bitset_show_named_index:N { c }
 \cs_new_protected:Npn \@@_show:NN #1#2
   {
     \__kernel_chk_defined:NT #2
       {
         #1 { bitset } { show }
-           { \token_to_str:N #2 }
-           { \bitset_to_bin:N #2 }
-           { \bitset_to_arabic:N #2 }
-           { }
+          { \token_to_str:N #2 }
+          { \bitset_to_bin:N #2 }
+          { \bitset_to_arabic:N #2 }
+          { }
       }
   }
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}
+%  {
+%     \bitset_show_named_index:N, \bitset_show_named_index:c,
+%     \bitset_log_named_index:N,  \bitset_log_named_index:c
+%  }
+%    \begin{macrocode}
+\cs_new_protected:Npn \bitset_show_named_index:N
+  { \@@_show_named_index:NN \msg_show:nneeee }
+\cs_generate_variant:Nn \bitset_show_named_index:N { c }
+\cs_new_protected:Npn \bitset_log_named_index:N
+  { \@@_show_named_index:NN \msg_log:nneeee }
+\cs_generate_variant:Nn \bitset_log_named_index:N { c }
 \cs_new_protected:Npn \@@_show_named_index:NN #1#2
   {
     \__kernel_chk_defined:NT #2
       {
         #1 { bitset } { show-names }
-           { \token_to_str:N #2 }
-           { \prop_map_function:cN { g_@@_ \cs_to_str:N #2 _name_prop }  \msg_show_item:nn  }
-           { }
-           { }
+          { \token_to_str:N #2 }
+          { \prop_map_function:cN { g_@@_ \cs_to_str:N #2 _name_prop } \msg_show_item:nn }
+          { } { }
       }
   }
 %    \end{macrocode}
@@ -566,7 +601,7 @@
 %
 % \subsection{Messages}
 %    \begin{macrocode}
- \msg_new:nnn { bitset } { show }
+\msg_new:nnn { bitset } { show }
   {
     The~bitset~#1~has~the~representation: \\
     >~binary:~#2  \\
@@ -589,21 +624,6 @@
 %</package>
 %    \end{macrocode}
 %
-% \subsection{Stub package}
-%
-%    \begin{macrocode}
-%<*stub>
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-\ProvidesExplPackage{l3bitset}{2023-12-11}{}
-  {L3 Experimental bitset support}
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-%</stub>
-%    \end{macrocode}
-%
 % \end{implementation}
 %
 % \PrintIndex

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3bootstrap.dtx
 %
-% Copyright (C) 2011-2023 The LaTeX Project
+% Copyright (C) 2011-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3bootstrap} package\\ Bootstrap code^^A
+%   The \pkg{l3bootstrap} module\\ Bootstrap code^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3box.dtx
 %
-% Copyright (C) 2005-2023 The LaTeX Project
+% Copyright (C) 2005-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3box} package\\ Boxes^^A
+%   The \pkg{l3box} module\\ Boxes^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -1493,10 +1493,10 @@
 %   Put a horizontal box directly into the input stream.
 %    \begin{macrocode}
 \cs_new_protected:Npn \hbox_to_wd:nn #1#2
-   {
-     \tex_hbox:D to \@@_dim_eval:n {#1}
-       { \color_group_begin: #2 \color_group_end: }
-   }
+  {
+    \tex_hbox:D to \@@_dim_eval:n {#1}
+      { \color_group_begin: #2 \color_group_end: }
+  }
 \cs_new_protected:Npn \hbox_to_zero:n #1
   {
     \tex_hbox:D to \c_zero_dim

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3candidates.dtx
 %
-% Copyright (C) 2012-2023 The LaTeX Project
+% Copyright (C) 2012-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3candidates} package\\ Experimental additions to
+%   The \pkg{l3candidates} module\\ Experimental additions to
 %   \pkg{l3kernel}^^A
 % }
 %
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -101,19 +101,6 @@
 %   \end{texnote}
 % \end{function}
 %
-% \section{Additions to \pkg{l3tl}}
-%
-% \begin{function}[added = 2018-04-01]{\tl_build_get:NN}
-%   \begin{syntax}
-%     \cs{tl_build_get:NN} \meta{tl~var_1} \meta{tl~var_2}
-%   \end{syntax}
-%   Stores the contents of the \meta{tl~var_1} in the \meta{tl~var_2}.
-%   The \meta{tl~var_1} must have been set up with \cs{tl_build_begin:N}
-%   or \cs{tl_build_gbegin:N}.  The \meta{tl~var_2} is a
-%   \enquote{normal} token list variable, assigned locally using
-%   \cs{tl_set:Nn}.
-% \end{function}
-%
 % \end{documentation}
 %
 % \begin{implementation}
@@ -154,22 +141,7 @@
 % \end{macro}
 % \end{macro}
 %
-% \subsection{Additions to \pkg{l3tl}}
-%
-% \subsubsection{Building a token list}
-%
 %    \begin{macrocode}
-%<@@=tl>
-%    \end{macrocode}
-%
-% \begin{macro}{\tl_build_get:NN}
-%    \begin{macrocode}
-\cs_new_protected:Npn \tl_build_get:NN
-  { \@@_build_get:NNN \__kernel_tl_set:Ne }
-%    \end{macrocode}
-% \end{macro}
-%
-%    \begin{macrocode}
 %</package>
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3cctab.dtx
 %
-% Copyright (C) 2018-2023 The LaTeX Project
+% Copyright (C) 2018-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3cctab} package\\ Category code tables^^A
+%   The \pkg{l3cctab} module\\ Category code tables^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -3,7 +3,7 @@
 %% File: l3clist.dtx
 %
 % Copyright (C) 2004-2011 Frank Mittelbach, The LaTeX Project
-%           (C) 2012-2023 The LaTeX Project
+%           (C) 2012-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -32,7 +32,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3clist} package\\ Comma separated lists^^A
+%   The \pkg{l3clist} module\\ Comma separated lists^^A
 % }
 %
 % \author{^^A
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3coffins.dtx
 %
-% Copyright (C) 2010-2023 The LaTeX Project
+% Copyright (C) 2010-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3coffins} package\\ Coffin code layer^^A
+%   The \pkg{l3coffins} module\\ Coffin code layer^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -871,7 +871,7 @@
         \box_set_eq:NN #1 #2
         \prop_set_eq:cc { coffin ~ \@@_to_value:N #1 ~ corners }
           { coffin ~ \@@_to_value:N #2 ~ corners }
-         \prop_set_eq:cc { coffin ~ \@@_to_value:N #1 ~ poles }
+        \prop_set_eq:cc { coffin ~ \@@_to_value:N #1 ~ poles }
           { coffin ~ \@@_to_value:N #2 ~ poles }
       }
   }
@@ -883,7 +883,7 @@
         \box_gset_eq:NN #1 #2
         \prop_gset_eq:cc { coffin ~ \@@_to_value:N #1 ~ corners }
           { coffin ~ \@@_to_value:N #2 ~ corners }
-         \prop_gset_eq:cc { coffin ~ \@@_to_value:N #1 ~ poles }
+        \prop_gset_eq:cc { coffin ~ \@@_to_value:N #1 ~ poles }
           { coffin ~ \@@_to_value:N #2 ~ poles }
       }
   }
@@ -1266,7 +1266,7 @@
                           {
                               ( \dim_to_fp:n {#7} / \dim_to_fp:n {#8} )
                             * ( \dim_to_fp:n {#4} - \dim_to_fp:n {#6} )
-                             + \dim_to_fp:n {#5}
+                            + \dim_to_fp:n {#5}
                           }
                       }
                   }
@@ -1606,13 +1606,13 @@
 \cs_new_protected:Npn \@@_find_corner_maxima_aux:nn #1#2
   {
     \dim_set:Nn \l_@@_left_corner_dim
-     { \dim_min:nn { \l_@@_left_corner_dim } {#1} }
+      { \dim_min:nn { \l_@@_left_corner_dim } {#1} }
     \dim_set:Nn \l_@@_right_corner_dim
-     { \dim_max:nn { \l_@@_right_corner_dim } {#1} }
+      { \dim_max:nn { \l_@@_right_corner_dim } {#1} }
     \dim_set:Nn \l_@@_bottom_corner_dim
-     { \dim_min:nn { \l_@@_bottom_corner_dim } {#2} }
+      { \dim_min:nn { \l_@@_bottom_corner_dim } {#2} }
     \dim_set:Nn \l_@@_top_corner_dim
-     { \dim_max:nn { \l_@@_top_corner_dim } {#2} }
+      { \dim_max:nn { \l_@@_top_corner_dim } {#2} }
   }
 %    \end{macrocode}
 % \end{macro}
@@ -1915,13 +1915,13 @@
 %   The coffin structure is reset, and the corners are cleared: only
 %   those from the two parent coffins are needed.
 %    \begin{macrocode}
-   \@@_reset_structure:N \l_@@_aligned_coffin
-   \prop_clear:c
-     {
-       coffin ~ \@@_to_value:N \l_@@_aligned_coffin
-       \c_space_tl corners
-     }
-   \@@_update_poles:N \l_@@_aligned_coffin
+    \@@_reset_structure:N \l_@@_aligned_coffin
+    \prop_clear:c
+      {
+        coffin ~ \@@_to_value:N \l_@@_aligned_coffin
+        \c_space_tl corners
+      }
+    \@@_update_poles:N \l_@@_aligned_coffin
 %    \end{macrocode}
 %   The structures of the parent coffins are now transferred to the new
 %   coffin, which requires that the appropriate offsets are applied. That

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3color.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3color.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3color.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3color.dtx
 %
-% Copyright (C) 2017-2023 The LaTeX Project
+% Copyright (C) 2017-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3color} package\\ Color support^^A
+%   The \pkg{l3color} module\\ Color support^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -779,9 +779,9 @@
 \cs_new:Npn \@@_convert_rgb_cmyk:w #1 ~ #2 ~ #3 \s_@@_stop
   {
     \exp_args:Neee \@@_convert_rgb_cmyk:nnn
-       { \fp_eval:n { 1 - #1 } }
-       { \fp_eval:n { 1 - #2 } }
-       { \fp_eval:n { 1 - #3 } }
+      { \fp_eval:n { 1 - #1 } }
+      { \fp_eval:n { 1 - #2 } }
+      { \fp_eval:n { 1 - #3 } }
   }
 \cs_new:Npn \@@_convert_rgb_cmyk:nnn #1#2#3
   {
@@ -875,9 +875,9 @@
 \cs_new_protected:Npn \@@_parse_set_eq:Nn #1#2
   {
     \tl_if_empty:NTF \l_color_fixed_model_tl
-       { \exp_args:Nv \@@_parse_set_eq:nNn { l_@@_named_ #2 _tl } }
-       { \exp_args:NV \@@_parse_set_eq:nNn \l_color_fixed_model_tl }
-         #1 {#2}
+      { \exp_args:Nv \@@_parse_set_eq:nNn { l_@@_named_ #2 _tl } }
+      { \exp_args:NV \@@_parse_set_eq:nNn \l_color_fixed_model_tl }
+        #1 {#2}
   }
 %    \end{macrocode}
 %    Here, we have to allow for the case where there is a fixed model:
@@ -894,8 +894,8 @@
         \tl_set_eq:Nc \l_@@_model_tl { l_@@_named_ #3 _tl }
         \prop_get:cVN { l_@@_named_ #3 _prop } \l_@@_model_tl
           \l_@@_value_tl
-         \@@_convert:nnN
-           \l_@@_model_tl {#1} \l_@@_value_tl
+        \@@_convert:nnN
+          \l_@@_model_tl {#1} \l_@@_value_tl
         \tl_set:Ne #2
           {
             {#1}
@@ -1190,11 +1190,11 @@
     \use:e
       {
         \exp_not:N \@@_parse_model_hsb_aux:nnnnn
-         { \@@_parse_number:n {#4} }
-         { \fp_eval:n { round(#4 * (1 - #3) ,5) } }
-         { \fp_eval:n { round(#4 * ( 1 - #3 * #2 ) ,5) } }
-         { \fp_eval:n { round(#4 * ( 1 - #3 * (1 - #2) ) ,5) } }
-         {#1}
+          { \@@_parse_number:n {#4} }
+          { \fp_eval:n { round(#4 * (1 - #3) ,5) } }
+          { \fp_eval:n { round(#4 * ( 1 - #3 * #2 ) ,5) } }
+          { \fp_eval:n { round(#4 * ( 1 - #3 * (1 - #2) ) ,5) } }
+          {#1}
       }
   }
 \cs_new:Npn \@@_parse_model_hsb_aux:nnnnn #1#2#3#4#5
@@ -2317,10 +2317,10 @@
     \tl_const:cn { c_@@_fallback_ #1 _tl } { cmyk }
     \cs_new:cpn { @@_convert_ #1 _cmyk:w } ##1 \s_@@_stop
       {
-         \fp_eval:n {##1 * #3} ~
-         \fp_eval:n {##1 * #4} ~
-         \fp_eval:n {##1 * #5} ~
-         \fp_eval:n {##1 * #6}
+        \fp_eval:n {##1 * #3} ~
+        \fp_eval:n {##1 * #4} ~
+        \fp_eval:n {##1 * #5} ~
+        \fp_eval:n {##1 * #6}
       }
     \cs_new:cpn { @@_convert_cmyk_ #1 :w } ##1 \s_@@_stop { 1 }
     \prop_gput:Nnn \g_@@_alternative_values_prop {#1} { #3 , #4 , #5 , #6 }
@@ -2332,9 +2332,9 @@
     \tl_const:cn { c_@@_fallback_ #1 _tl } { rgb }
     \cs_new:cpn { @@_convert_ #1 _rgb:w } ##1 \s_@@_stop
       {
-         \fp_eval:n {##1 * #3} ~
-         \fp_eval:n {##1 * #4} ~
-         \fp_eval:n {##1 * #5}
+        \fp_eval:n {##1 * #3} ~
+        \fp_eval:n {##1 * #4} ~
+        \fp_eval:n {##1 * #5}
       }
     \cs_new:cpn { @@_convert_rgb_ #1 :w } ##1 \s_@@_stop { 1 }
     \prop_gput:Nnn \g_@@_alternative_values_prop {#1} { #3 , #4 , #5 }
@@ -2495,7 +2495,7 @@
                       {#2}
                     \clist_map_break:n { \use_none:nnnn }
                   }
-               }
+              }
           }
           {
             \str_if_eq:nnF {##1} { none }

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3debug.dtx
 %
-% Copyright (C) 2019-2023 The LaTeX Project
+% Copyright (C) 2019-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3debug} package\\ Debugging support^^A
+%   The \pkg{l3debug} module\\ Debugging support^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -128,7 +128,7 @@
 %
 % Standard file identification.
 %    \begin{macrocode}
-\ProvidesExplFile{l3debug.def}{2023-12-11}{}{L3 Debugging support}
+\ProvidesExplFile{l3debug.def}{2024-01-04}{}{L3 Debugging support}
 %    \end{macrocode}
 %
 % \begin{variable}{\s_@@_stop}
@@ -165,12 +165,12 @@
 % \begin{macro}{\debug_on:n, \debug_off:n, \@@_all_on:, \@@_all_off:}
 %    \begin{macrocode}
 \cs_set_protected:Npn \debug_on:n #1
-   {
+  {
     \exp_args:No \clist_map_inline:nn { \tl_to_str:n {#1} }
-       {
+      {
         \cs_if_exist_use:cF { @@_ ##1 _on: }
           { \msg_error:nnn { debug } { debug } {##1} }
-       }
+      }
   }
 \cs_set_protected:Npn \debug_off:n #1
   {

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3deprecation.dtx
 %
-% Copyright (C) 2017-2023 The LaTeX Project
+% Copyright (C) 2017-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3deprecation} package\\ Deprecation errors^^A
+%   The \pkg{l3deprecation} module\\ Deprecation errors^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -129,9 +129,9 @@
         \__kernel_deprecation_error:Nnn #4 {#2} {#1}
       }
       { \tex_let:D #4 \scan_stop: }
-     \cs_if_eq:NNTF #3 \cs_gset_protected:Npn
-        { \@@_warn_once:nnNnn {#1} {#2} #4 {#5} {#6} }
-        { \@@_patch_aux:Nn #3 { #4 #5 {#6} } }
+    \cs_if_eq:NNTF #3 \cs_gset_protected:Npn
+      { \@@_warn_once:nnNnn {#1} {#2} #4 {#5} {#6} }
+      { \@@_patch_aux:Nn #3 { #4 #5 {#6} } }
   }
 %    \end{macrocode}
 %   In case we want a warning, the \meta{function} is defined to produce
@@ -729,6 +729,13 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}{\tl_build_get:NN}
+%    \begin{macrocode}
+\__kernel_patch_deprecation:nnNNpn { 2023-10-25 } { \tl_build_get_intermediate:NN }
+\cs_new_protected:Npn \tl_build_get:NN { \tl_build_get_intermediate:NN }
+%    \end{macrocode}
+% \end{macro}
+%
 % \subsection{Deprecated \pkg{l3token} functions}
 %
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3doc.dtx
 %
-% Copyright (C) 1990-2023 The LaTeX Project
+% Copyright (C) 1990-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 \askforoverwritefalse
 \preamble
 
-Copyright (C) 1990-2023 The LaTeX Project
+Copyright (C) 1990-2024 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of
 the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -71,7 +71,7 @@
 % This isn't included in the typeset documentation because it's a bit
 % ugly:
 %<*class>
-\ProvidesExplClass{l3doc}{2023-12-11}{}
+\ProvidesExplClass{l3doc}{2024-01-04}{}
   {L3 Experimental documentation class}
 %</class>
 % \fi
@@ -84,7 +84,7 @@
 %    require you to do updates, if the class changes.}}
 %
 % \author{\Team}
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 % \maketitle
 % \tableofcontents
 %
@@ -1443,11 +1443,11 @@
         \bool_gset_true:N \g_@@_typeset_documentation_bool
         \bool_gset_true:N \g_@@_typeset_implementation_bool
       } ,
-   onlydoc .code:n = 
-    {
-      \bool_gset_true:N \g_@@_typeset_documentation_bool
-      \bool_gset_false:N \g_@@_typeset_implementation_bool
-    } ,
+    onlydoc .code:n = 
+      {
+        \bool_gset_true:N \g_@@_typeset_documentation_bool
+        \bool_gset_false:N \g_@@_typeset_implementation_bool
+      } ,
     check .bool_gset:N = \g_@@_checkfunc_bool ,
     checktest .bool_gset:N = \g_@@_checktest_bool ,
     kernel .bool_gset:N = \g_@@_kernel_bool ,
@@ -2015,28 +2015,28 @@
 % Indexing.
 %    \begin{macrocode}
     \bool_if:NT \l_@@_allow_indexing_bool
-     {
-      \bool_if:NF \l_@@_cmd_noindex_bool
-       {
-        \quark_if_no_value:NF \l_@@_cmd_index_tl
+      {
+        \bool_if:NF \l_@@_cmd_noindex_bool
           {
-            \__kernel_tl_set:Ne \l_@@_cmd_tl
-              { \c_backslash_str \exp_not:o { \l_@@_cmd_index_tl } }
+            \quark_if_no_value:NF \l_@@_cmd_index_tl
+              {
+                \__kernel_tl_set:Ne \l_@@_cmd_tl
+                  { \c_backslash_str \exp_not:o { \l_@@_cmd_index_tl } }
+              }
+            \exp_args:No \@@_key_get:n { \l_@@_cmd_tl }
+            \quark_if_no_value:NF \l_@@_cmd_module_tl
+              {
+                \__kernel_tl_set:Ne \l_@@_index_module_tl
+                  { \tl_to_str:N \l_@@_cmd_module_tl }
+              }
+            \@@_special_index_module:ooonN
+              { \l_@@_index_key_tl }
+              { \l_@@_index_macro_tl }
+              { \l_@@_index_module_tl }
+              { usage }
+              \l_@@_index_internal_bool
           }
-        \exp_args:No \@@_key_get:n { \l_@@_cmd_tl }
-        \quark_if_no_value:NF \l_@@_cmd_module_tl
-          {
-            \__kernel_tl_set:Ne \l_@@_index_module_tl
-              { \tl_to_str:N \l_@@_cmd_module_tl }
-          }
-        \@@_special_index_module:ooonN
-          { \l_@@_index_key_tl }
-          { \l_@@_index_macro_tl }
-          { \l_@@_index_module_tl }
-          { usage }
-          \l_@@_index_internal_bool
-       }
-     }
+      }
   }
 \cs_generate_variant:Nn \@@_cmd:nn { no }
 %    \end{macrocode}
@@ -2729,8 +2729,11 @@
     \@@_typeset_aux:n { \@@_get_function_name:n {#1} }
     :
     \int_compare:nTF { \seq_count:N \g_@@_variants_seq == 1 }
-      { \seq_use:Nn \g_@@_variants_seq { } }
       {
+        \seq_use:Nn \g_@@_variants_seq { }
+        \bool_if:NT #2 { \@@_typeset_TF: }
+      }
+      {
         \hbox_set:Nn \l_tmpa_box
           { \seq_use:Nn \g__@@_variants_seq { \textrm| \nolinebreak[2] } }
         \textrm(
@@ -2997,10 +3000,13 @@
 % \end{macro}
 %
 % \begin{macro}{\@@_macro_save_names:}
+% \begin{macro}[EXP]{\@@_macro_save_names_aux:w}
 %   The list of names defined in a set of \env{macro} environments is
 %   eventually used to display on which page they are documented.  If
 %   the |documented-as| key is given, use that, otherwise find names in
-%   \cs{l_@@_names_block_tl}.
+%   \cs{l_@@_names_block_tl}. The |documented-as| needs to be detokenized
+%   without adding a space, so it has to be treated in a slightly awkward
+%   way.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_macro_save_names:
   {
@@ -3008,13 +3014,19 @@
       { \@@_names_block_base_map:N \@@_macro_save_names_aux:n }
       {
         \seq_gput_right:Ne \g_@@_nested_names_seq
-          { \tl_to_str:N \l_@@_macro_documented_tl }
+          {
+            \exp_after:wN \@@_macro_save_names_aux:w
+              \l_@@_macro_documented_tl \q_@@_stop
+          }
       }
   }
+\cs_new:Npn \@@_macro_save_names_aux:w #1#2 \q_@@_stop
+  { \token_to_str:N #1 \tl_to_str:n {#2} }
 \cs_new_protected:Npn \@@_macro_save_names_aux:n #1
   { \seq_gput_right:Nn \g_@@_nested_names_seq {#1} }
 %    \end{macrocode}
 % \end{macro}
+% \end{macro}
 %
 % \begin{macro}{\@@_macro_exclude_index:}
 %   Some control sequences in a \env{macrocode} environment shouldn't
@@ -3316,21 +3328,21 @@
 \cs_new_protected:Npn \@@_macro_end_check_tested:
   {
     \bool_lazy_all:nT
-     {
-       { \g_@@_checktest_bool }
-       { ! \l_@@_macro_var_bool }
-       { ! \l_@@_macro_tested_bool }
-     }
-     {
-       \seq_set_filter:NNn \l_@@_tmpa_seq \l_@@_names_seq
-         { ! \@@_if_macro_internal_p:n {##1} }
-       \seq_gput_right:Ne \g_@@_not_tested_seq
-         {
-           \seq_use:Nn \l_@@_tmpa_seq { , }
-           \bool_if:NTF \l_@@_macro_pTF_bool {~(pTF)}
-             { \bool_if:NT \l_@@_macro_TF_bool {~(TF)} }
-         }
-     }
+      {
+        { \g_@@_checktest_bool }
+        { ! \l_@@_macro_var_bool }
+        { ! \l_@@_macro_tested_bool }
+      }
+      {
+        \seq_set_filter:NNn \l_@@_tmpa_seq \l_@@_names_seq
+          { ! \@@_if_macro_internal_p:n {##1} }
+        \seq_gput_right:Ne \g_@@_not_tested_seq
+          {
+            \seq_use:Nn \l_@@_tmpa_seq { , }
+            \bool_if:NTF \l_@@_macro_pTF_bool {~(pTF)}
+              { \bool_if:NT \l_@@_macro_TF_bool {~(TF)} }
+          }
+      }
   }
 %    \end{macrocode}
 % \end{macro}
@@ -3535,17 +3547,17 @@
 \providecommand\Hy at footnote@currentHref{}
 \prop_new:N\g_@@_fnmark_prop
 \cs_new_protected:Npn \@@_fn_store: 
- { 
-   \prop_gput:Nee\g_@@_fnmark_prop 
-     {fn\int_use:N\c at footnote}{{\Hy at footnote@currentHref}{\int_use:N\c at footnote}}
- }
+  { 
+    \prop_gput:Nee\g_@@_fnmark_prop 
+      {fn\int_use:N\c at footnote}{{\Hy at footnote@currentHref}{\int_use:N\c at footnote}}
+  }
 \cs_new_protected:Npn \@@_fn_restore:n  #1
- {
-   \prop_get:NnN \g_@@_fnmark_prop {fn#1}\l_@@_tmpa_tl
-   \tl_gset:Ne\Hy at footnote@currentHref
-     {\exp_last_unbraced:NV\use_i:nn \l_@@_tmpa_tl }
-   \setcounter{footnote}{\exp_last_unbraced:NV\use_ii:nn \l_@@_tmpa_tl}
- }  
+  {
+    \prop_get:NnN \g_@@_fnmark_prop {fn#1}\l_@@_tmpa_tl
+    \tl_gset:Ne\Hy at footnote@currentHref
+      {\exp_last_unbraced:NV\use_i:nn \l_@@_tmpa_tl }
+    \setcounter{footnote}{\exp_last_unbraced:NV\use_ii:nn \l_@@_tmpa_tl}
+  }  
 
 \cs_generate_variant:Nn \hook_gput_next_code:nn {ne}
 \cs_new_protected:Npn \@@_fn_footnote:nn #1 #2
@@ -3656,7 +3668,7 @@
 %    (which may not be the case).
 %    \begin{macrocode}
 \cs_if_exist:NT \MaybeStop  
-   { \RenewCommandCopy \MaybeStop \StopEventually }
+  { \RenewCommandCopy \MaybeStop \StopEventually }
 %    \end{macrocode}
 %
 %    \begin{macrocode}
@@ -4664,13 +4676,13 @@
   {
     \title
       {
-       The~\pkg{#1}~package \\ #2
+        The~\pkg{#1}~package \\ #2
       }
     \author
       {
-       The~\LaTeX3~Project\thanks{E-mail:~
-       \href{mailto:latex-l at listserv.uni-heidelberg.de}
-            {latex-l at listserv.uni-heidelberg.de}}
+        The~\LaTeX3~Project\thanks{E-mail:~
+        \href{mailto:latex-l at listserv.uni-heidelberg.de}
+             {latex-l at listserv.uni-heidelberg.de}}
       }
     \date{Released~\ExplFileDate}
     \maketitle
@@ -4686,8 +4698,8 @@
   {
     \clist_map_inline:nn
       {
-       asin, acos, atan, acot,
-       asinh, acosh, atanh, acoth, round, floor, ceil
+        asin, acos, atan, acot,
+        asinh, acosh, atanh, acoth, round, floor, ceil
       }
       { \exp_args:Nc \DeclareMathOperator{#1}{#1} }
   }

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File l3dosctrip.dtx
 %
-% Copyright (C) 2012-2023 The LaTeX Project
+% Copyright (C) 2012-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -51,7 +51,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3docstrip} package\\ Code extraction and manipulation^^A
+%   The \pkg{l3docstrip} module\\ Code extraction and manipulation^^A
 % }
 %
 % \author{^^A
@@ -63,7 +63,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3expan.dtx
 %
-% Copyright (C) 1990-2023 The LaTeX Project
+% Copyright (C) 1990-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3expan} package\\ Argument expansion^^A
+%   The \pkg{l3expan} module\\ Argument expansion^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -1525,7 +1525,7 @@
 \cs_new:Npn \exp_last_two_unbraced:Noo #1#2#3
   { \exp_after:wN \@@_last_two_unbraced:noN \exp_after:wN {#3} {#2} #1 }
 \cs_new:Npn \@@_last_two_unbraced:noN #1#2#3
-   { \exp_after:wN #3 #2 #1 }
+  { \exp_after:wN #3 #2 #1 }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3file.dtx
 %
-% Copyright (C) 1990-2023 The LaTeX Project
+% Copyright (C) 1990-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -32,7 +32,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3file} package\\ File and I/O operations^^A
+%   The \pkg{l3file} module\\ File and I/O operations^^A
 % }
 %
 % \author{^^A
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -2158,12 +2158,12 @@
 %    \end{macrocode}
 %   Sanity check.
 %    \begin{macrocode}
-       \int_compare:nNnT { \l_@@_line_target_int } < 0
-         {
-           \tl_set:Nn \l_@@_newline_tl { \iow_newline: }
-           \int_set:Nn \l_@@_line_target_int
-             { \l_iow_line_count_int + 1 }
-         }
+      \int_compare:nNnT { \l_@@_line_target_int } < 0
+        {
+          \tl_set:Nn \l_@@_newline_tl { \iow_newline: }
+          \int_set:Nn \l_@@_line_target_int
+            { \l_iow_line_count_int + 1 }
+        }
 %    \end{macrocode}
 %   There is then a loop over the input, which stores the wrapped
 %   result in \cs{l_@@_wrap_tl}.  After the loop, the resulting text is
@@ -3372,7 +3372,7 @@
       { \file_full_name:n {#1} }
       { \file_full_name:n {#3} }
       #2
-   }
+  }
 \prg_generate_conditional_variant:Nnn \file_compare_timestamp:nNn
   { nNV , V , VNV } { p , T , F , TF }
 \cs_new:Npn \@@_compare_timestamp:nnN #1#2#3
@@ -3388,11 +3388,11 @@
       {
         \tl_if_blank:nTF {#2}
           {
-             \if_charcode:w #3 >
-                \prg_return_true:
-              \else:
-                \prg_return_false:
-              \fi:
+            \if_charcode:w #3 >
+              \prg_return_true:
+            \else:
+              \prg_return_false:
+            \fi:
           }
           {
             \if_int_compare:w
@@ -3825,8 +3825,8 @@
       {
         \exp_args:NV \@@_kernel_dependency_compare:nnn
           \c__kernel_expl_date_tl {#1}
-       }
-       { \@@_kernel_dependency_compare:nnn { 0000-00-00 } {#1} }
+      }
+      { \@@_kernel_dependency_compare:nnn { 0000-00-00 } {#1} }
   }
 \cs_new_protected:Npn \@@_kernel_dependency_compare:nnn #1 #2 #3
   {

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3flag.dtx
 %
-% Copyright (C) 2011-2023 The LaTeX Project
+% Copyright (C) 2011-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3flag} package\\ Expandable flags^^A
+%   The \pkg{l3flag} module\\ Expandable flags^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -61,7 +61,7 @@
 % to zero requires non-expandable assignments.
 %
 % Flag variables are always local. They are referenced by a \meta{flag
-% name} such as \texttt{@@_missing}.  The \meta{flag name} is used as
+% name} such as \texttt{fp_overflow}.  The \meta{flag name} is used as
 % part of \cs{use:c} constructions hence is expanded at point of use.
 % It must expand to character tokens only, with no spaces.
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3fp-assign.dtx
 %
-% Copyright (C) 2011-2023 The LaTeX Project
+% Copyright (C) 2011-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3fp-assign} package\\
+%   The \pkg{l3fp-assign} module\\
 %   Floating point expressions^^A
 % }
 % \author{^^A
@@ -42,7 +42,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 % \maketitle
 %
 % \begin{documentation}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3fp-aux.dtx
 %
-% Copyright (C) 2011-2023 The LaTeX Project
+% Copyright (C) 2011-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3fp-aux} package\\ Support for floating points^^A
+%   The \pkg{l3fp-aux} module\\ Support for floating points^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -906,7 +906,7 @@
     #2#3#4; {#5} ;
   }
 \cs_new:Npn \@@_basics_pack_weird_high:NNNNNNNNw
-   1 #1#2#3#4 #5#6#7#8 #9; { ; {#1#2#3#4} {#5#6#7#8} {#9} }
+  1 #1#2#3#4 #5#6#7#8 #9; { ; {#1#2#3#4} {#5#6#7#8} {#9} }
 %    \end{macrocode}
 % \end{macro}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3fp-basics.dtx
 %
-% Copyright (C) 2011-2023 The LaTeX Project
+% Copyright (C) 2011-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3fp-basics} package\\
+%   The \pkg{l3fp-basics} module\\
 %   Floating point arithmetic^^A
 % }
 % \author{^^A
@@ -42,7 +42,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3fp-convert.dtx
 %
-% Copyright (C) 2011-2023 The LaTeX Project
+% Copyright (C) 2011-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3fp-convert} package\\ Floating point conversion^^A
+%   The \pkg{l3fp-convert} module\\ Floating point conversion^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3fp-expo.dtx
 %
-% Copyright (C) 2011-2023 The LaTeX Project
+% Copyright (C) 2011-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3fp-expo} package\\
+%   The \pkg{l3fp-expo} module\\
 %   Floating point exponential-related functions^^A
 % }
 % \author{^^A
@@ -42,7 +42,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3fp-extended.dtx
 %
-% Copyright (C) 2011-2023 The LaTeX Project
+% Copyright (C) 2011-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3fp-extended} package\\
+%   The \pkg{l3fp-extended} module\\
 %   Manipulating numbers with extended precision, for internal use^^A
 % }
 % \author{^^A
@@ -42,7 +42,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-functions.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-functions.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-functions.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -30,7 +30,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3fp-functions} package\\ Floating point functions^^A
+%   The \pkg{l3fp-functions} module\\ Floating point functions^^A
 % }
 %
 % \author{^^A
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3fp-logic.dtx
 %
-% Copyright (C) 2011-2023 The LaTeX Project
+% Copyright (C) 2011-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3fp-logic} package\\
+%   The \pkg{l3fp-logic} module\\
 %   Floating point conditionals^^A
 % }
 % \author{^^A
@@ -42,7 +42,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3fp-parse.dtx
 %
-% Copyright (C) 2011-2023 The LaTeX Project
+% Copyright (C) 2011-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3fp-parse} package\\
+%   The \pkg{l3fp-parse} module\\
 %   Floating point expression parsing^^A
 % }
 % \author{^^A
@@ -42,7 +42,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3fp-random.dtx
 %
-% Copyright (C) 2016-2023 The LaTeX Project
+% Copyright (C) 2016-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3fp-random} package\\
+%   The \pkg{l3fp-random} module\\
 %   Floating point random numbers
 % }
 % \author{^^A
@@ -42,7 +42,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -434,10 +434,10 @@
 \cs_new:Npn \@@_randint_auxiv_o:ww #1#2#3#4#5 ; #6#7#8#9
   {
     \if_int_compare:w
-        \if_int_compare:w #1#2 > #6#7 \exp_stop_f: 1 \else:
+      \if_int_compare:w #1#2 > #6#7 \exp_stop_f: 1 \else:
         \if_int_compare:w #1#2 < #6#7 \exp_stop_f: - \fi: \fi:
-        #3#4 > #8#9 \exp_stop_f:
-     \@@_use_i_until_s:nw
+      #3#4 > #8#9 \exp_stop_f:
+      \@@_use_i_until_s:nw
     \fi:
     \@@_randint_auxv_o:w {#1}{#2}{#3}{#4}#5
   }
@@ -567,8 +567,8 @@
     \exp_after:wN \@@_randint_wide_auxii:w
     \int_value:w \@@_int_eval:w #5 * #3 + #6 * #1 +
       (#5 * #4 + #6 * #3 + #7 * #1 +
-       (#5 * #2 +           #7 * #3 +
-        (16384 * #6 + #7) * (16384 * #4 + #2) / 268435456) / 16384
+        (#5 * #2 +           #7 * #3 +
+          (16384 * #6 + #7) * (16384 * #4 + #2) / 268435456) / 16384
       ) / 16384 \exp_after:wN ;
     \int_value:w \@@_int_eval:w (#5 + #6) * 16384 + #7 ;
     #1 ; #5 ;

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3fp-round.dtx
 %
-% Copyright (C) 2011-2023 The LaTeX Project
+% Copyright (C) 2011-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3fp-round} package\\ Rounding floating points^^A
+%   The \pkg{l3fp-round} module\\ Rounding floating points^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-symbolic.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-symbolic.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-symbolic.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -30,7 +30,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3fp-symbolic} package\\ Symbolic expressions^^A
+%   The \pkg{l3fp-symbolic} module\\ Symbolic expressions^^A
 % }
 %
 % \author{^^A
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -599,8 +599,8 @@
 % \end{macro}
 % \end{macro}
 %
-% \begin{macro}{\fp_set_variable:nn}
-% \begin{macro}{\@@_set_variable:nn}
+% \begin{variable}{@@_symbolic}
+% \begin{macro}{\fp_set_variable:nn, \@@_set_variable:nn}
 %   Refuse invalid identifiers.  If the variable does not exist yet,
 %   define it just as in \cs{fp_new_variable:n} (but without unnecessary
 %   checks).  Then evaluate~|#2|.  If the result contains the
@@ -642,7 +642,7 @@
   }
 %    \end{macrocode}
 % \end{macro}
-% \end{macro}
+% \end{variable}
 %
 % \subsection{Messages}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3fp-traps.dtx
 %
-% Copyright (C) 2011-2023 The LaTeX Project
+% Copyright (C) 2011-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3fp-traps} package\\
+%   The \pkg{l3fp-traps} module\\
 %   Trapping floating-point exceptions^^A
 % }
 % \author{^^A
@@ -42,7 +42,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 % \maketitle
 %
 % \begin{documentation}
@@ -74,10 +74,10 @@
 %
 % \begin{variable}[module = fp]
 %   {
-%     flag fp_invalid_operation,
-%     flag fp_division_by_zero,
-%     flag fp_overflow,
-%     flag fp_underflow
+%     fp_invalid_operation,
+%     fp_division_by_zero,
+%     fp_overflow,
+%     fp_underflow
 %   }
 %   Flags to denote exceptions.
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3fp-trig.dtx
 %
-% Copyright (C) 2011-2023 The LaTeX Project
+% Copyright (C) 2011-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3fp-trig} package\\
+%   The \pkg{l3fp-trig} module\\
 %   Floating point trigonometric functions^^A
 % }
 % \author{^^A
@@ -42,7 +42,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-types.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-types.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-types.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -30,7 +30,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3fp-types} package\\ Floating point types^^A
+%   The \pkg{l3fp-types} module\\ Floating point types^^A
 % }
 %
 % \author{^^A
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3fp.dtx
 %
-% Copyright (C) 2011-2023 The LaTeX Project
+% Copyright (C) 2011-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -37,7 +37,7 @@
 %
 %
 % \title{^^A
-%   The \pkg{l3fp} package\\ Floating points^^A
+%   The \pkg{l3fp} module\\ Floating points^^A
 % }
 %
 % \author{^^A
@@ -49,7 +49,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -909,10 +909,10 @@
 %
 % \begin{variable}[module = fp]
 %   {
-%     flag fp_overflow,
-%     flag fp_underflow,
-%     flag fp_invalid_operation,
-%     flag fp_division_by_zero
+%     fp_overflow,
+%     fp_underflow,
+%     fp_invalid_operation,
+%     fp_division_by_zero
 %   }
 %   Flags denoting the occurrence of various floating-point exceptions.
 % \end{variable}
@@ -1567,7 +1567,7 @@
 %
 % \section{Disclaimer and roadmap}
 %
-% The package may break down if the escape character is among
+% This module may break if the escape character is among
 % |0123456789_+|, or if it receives a \TeX{} primitive conditional affected
 % by \cs{exp_not:N}.
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3fparray.dtx
 %
-% Copyright (C) 2018-2023 The LaTeX Project
+% Copyright (C) 2018-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -32,7 +32,7 @@
 %
 %
 % \title{^^A
-%   The \pkg{l3fparray} package\\ Fast global floating point arrays^^A
+%   The \pkg{l3fparray} module\\ Fast global floating point arrays^^A
 % }
 %
 % \author{^^A
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3int.dtx
 %
-% Copyright (C) 1990-2023 The LaTeX Project
+% Copyright (C) 1990-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3int} package\\ Integers^^A
+%   The \pkg{l3int} module\\ Integers^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3intarray.dtx
 %
-% Copyright (C) 2017-2023 The LaTeX Project
+% Copyright (C) 2017-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -32,7 +32,7 @@
 %
 %
 % \title{^^A
-%   The \pkg{l3intarray} package\\ Fast global integer arrays^^A
+%   The \pkg{l3intarray} module\\ Fast global integer arrays^^A
 % }
 %
 % \author{^^A
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -151,7 +151,7 @@
 % $2^{30}-1$).  In contrast to \pkg{l3seq} sequences the access to
 % individual entries is done in constant time rather than linear time,
 % but only integers can be stored.  More precisely, the primitive
-% \tn{fontdimen} stores dimensions but the \pkg{l3intarray} package
+% \tn{fontdimen} stores dimensions but the \pkg{l3intarray} module
 % transparently converts these from/to integers.  Assignments are always
 % global.
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3kernel-functions.dtx
 %
-% Copyright (C) 2018-2023 The LaTeX Project
+% Copyright (C) 2018-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3kernel-functions} package\\ Kernel-reserved functions^^A
+%   The \pkg{l3kernel-functions} module\\ Kernel-reserved functions^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3keys.dtx
 %
-% Copyright (C) 2006-2023 The LaTeX Project
+% Copyright (C) 2006-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3keys} package\\ Key--value interfaces^^A
+%   The \pkg{l3keys} module\\ Key--value interfaces^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -775,12 +775,14 @@
 % If a key has not previously been defined (is unknown), \cs{keys_set:nn}
 % looks for a special \texttt{unknown} key for the same module, and if this is
 % not defined raises an error indicating that the key name was unknown. This
-% mechanism can be used for example to issue custom error texts.
+% mechanism can be used for example to issue custom error texts. The
+% \texttt{unknown} key also supports the \texttt{.default:n} property.
 % \begin{verbatim}
 %   \keys_define:nn { mymodule }
 %     {
 %       unknown .code:n =
-%         You~tried~to~set~key~'\l_keys_key_str'~to~'#1'.
+%         You~tried~to~set~key~'\l_keys_key_str'~to~'#1'. ,
+%       unknown .default:V = \c_novalue_tl
 %     }
 % \end{verbatim}
 %
@@ -1344,9 +1346,9 @@
 %    \begin{macrocode}
       \cs_new:Npn \@@_misplaced_equal_after_active_error:w
           \s_@@_mark ##1 \s_@@_stop \s_@@_mark ##2 \s_@@_nil
-           = \s_@@_mark \@@_split_active_auxii:w
-           \s_@@_mark ##3 \s_@@_nil
-           #2 \s_@@_mark \@@_clean_up_active:w
+          = \s_@@_mark \@@_split_active_auxii:w
+          \s_@@_mark ##3 \s_@@_nil
+          #2 \s_@@_mark \@@_clean_up_active:w
         {
           \msg_expandable_error:nn
             { keyval } { misplaced-equals-sign }
@@ -1813,28 +1815,29 @@
 % \end{macro}
 %
 % \begin{macro}{\@@_property_find:n}
-% \begin{macro}
+% \begin{macro}[EXP]{\@@_property_find_auxi:w}
+% \begin{macro}{\@@_property_find_auxii:w}
+% \begin{macro}[EXP]
 %   {
-%     \@@_property_find_auxi:w   ,
-%     \@@_property_find_auxii:w  ,
 %     \@@_property_find_auxiii:w ,
 %     \@@_property_find_auxiv:w
 %   }
+% \begin{macro}{\@@_property_find_err:w}
 %   Searching for a property means finding the last |.| in the input,
-%   and storing the text before and after it. Everything is turned into
-%   strings, so there is no problem using an \texttt{e}-type expansion. Since
-%   \cs{@@_trim_spaces:n} will turn its argument into a string anyway, this
-%   function uses \cs{cs_set_nopar:Npe} instead of \cs{tl_set:Ne} to gain some
-%   speed.
+%   and storing the text before and after it. Everything is first turned into
+%   strings, so there is no problem using \cs{cs_set_nopar:Npe} instead of
+%   \cs{str_set:Ne} to set \cs{l_keys_path_str}. To gain further speed, brace
+%   tricks are used and \cs{@@_property_find_auxiv:w} is defined as expandable.
+%   Since spaces will already be trimmed from the module we can omit it from the
+%   argument to \cs{@@_trim_spaces:n}.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_property_find:n #1
   {
-    \cs_set_nopar:Npe \l_@@_property_str { \@@_trim_spaces:n { #1 } }
-    \exp_after:wN \@@_property_find_auxi:w \l_@@_property_str
+    \exp_after:wN \@@_property_find_auxi:w \tl_to_str:n {#1}
       \s_@@_nil \@@_property_find_auxii:w
       . \s_@@_nil \@@_property_find_err:w
   }
-\cs_new_protected:Npn \@@_property_find_auxi:w #1 . #2 \s_@@_nil #3
+\cs_new:Npn \@@_property_find_auxi:w #1 . #2 \s_@@_nil #3
   {
     #3 #1 \s_@@_mark #2 \s_@@_nil #3
   }
@@ -1843,22 +1846,24 @@
     \@@_property_find_err:w
   {
     \cs_set_nopar:Npe \l_keys_path_str
-      { \str_if_empty:NF \l_@@_module_str { \l_@@_module_str / } #1 }
-    \@@_property_find_auxi:w #2 \s_@@_nil \@@_property_find_auxiii:w . \s_@@_nil
-      \@@_property_find_auxiv:w
+      {
+        \str_if_empty:NF \l_@@_module_str { \l_@@_module_str / }
+        \exp_after:wN \@@_trim_spaces:n \tex_expanded:D {{
+        #1
+        \if_false: }}} \fi:
+        \@@_property_find_auxi:w #2 \s_@@_nil \@@_property_find_auxiii:w
+          . \s_@@_nil \@@_property_find_auxiv:w
   }
-\cs_new_protected:Npn \@@_property_find_auxiii:w #1 \s_@@_mark
+\cs_new:Npn \@@_property_find_auxiii:w #1 \s_@@_mark #2 . #3 \s_@@_nil #4
   {
-    \cs_set_nopar:Npe \l_keys_path_str { \l_keys_path_str . #1 }
-    \@@_property_find_auxi:w
+    . #1 #4 #2 \s_@@_mark #3 \s_@@_nil #4
   }
-\cs_new_protected:Npn \@@_property_find_auxiv:w
+\cs_new:Npn \@@_property_find_auxiv:w
     #1 \s_@@_nil \@@_property_find_auxiii:w
     \s_@@_mark \s_@@_nil \@@_property_find_auxiv:w
   {
+    \if_false: {{{ \fi: }}}
     \cs_set_nopar:Npe \l_@@_property_str { . #1 }
-    \cs_set_nopar:Npe \l_keys_path_str
-      { \exp_after:wN \@@_trim_spaces:n \exp_after:wN { \l_keys_path_str } }
     \tl_set_eq:NN \l_keys_path_tl \l_keys_path_str
   }
 \cs_new_protected:Npn \@@_property_find_err:w
@@ -1870,6 +1875,9 @@
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
 %
 % \begin{macro}{\@@_define_code:n}
 % \begin{macro}[EXP]{\@@_define_code:w}
@@ -2154,8 +2162,8 @@
     \@@_default_set:n { true }
     \cs_if_exist:cF { if#1 }
       {
-         \cs:w newif \exp_after:wN \cs_end:
-           \cs:w if#1 \cs_end:
+        \cs:w newif \exp_after:wN \cs_end:
+          \cs:w if#1 \cs_end:
       }
   }
 %    \end{macrocode}
@@ -3242,8 +3250,20 @@
       {
         \cs_if_exist:cTF
           { \c_@@_code_root_str \l_@@_module_str / unknown }
-          { \@@_execute:no { \l_@@_module_str / unknown } \l_keys_value_tl }
           {
+            \bool_if:NT \l_@@_no_value_bool
+              {
+                \cs_if_exist:cT
+                  { \c_@@_default_root_str \l_@@_module_str / unknown }
+                  {
+                    \tl_set_eq:Nc
+                      \l_keys_value_tl
+                      { \c_@@_default_root_str \l_@@_module_str / unknown }
+                  }
+              }
+            \@@_execute:no { \l_@@_module_str / unknown } \l_keys_value_tl
+          }
+          {
             \msg_error:nnee { keys } { unknown }
               \l_keys_path_str \l_@@_module_str
           }

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3legacy.dtx
 %
-% Copyright (C) 2019-2023 The LaTeX Project
+% Copyright (C) 2019-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3legacy} package\\ Interfaces to legacy concepts^^A
+%   The \pkg{l3legacy} module\\ Interfaces to legacy concepts^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3luatex.dtx
 %
-% Copyright (C) 2010-2023 The LaTeX Project
+% Copyright (C) 2010-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3luatex} package\\ \LuaTeX-specific functions^^A
+%   The \pkg{l3luatex} module\\ \LuaTeX-specific functions^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3msg.dtx
 %
-% Copyright (C) 2009-2023 The LaTeX Project
+% Copyright (C) 2009-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3msg} package\\ Messages^^A
+%   The \pkg{l3msg} module\\ Messages^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -936,9 +936,9 @@
           { \use:c { \c_@@_text_prefix_tl #2 / #3 } #4 }
           { \c_@@_continue_text_tl }
           {
-             \c_@@_no_info_text_tl
-             \tl_if_empty:NF #5
-               { \\ \\ #5 }
+            \c_@@_no_info_text_tl
+            \tl_if_empty:NF #5
+              { \\ \\ #5 }
           }
       }
       {
@@ -946,9 +946,9 @@
           { \use:c { \c_@@_text_prefix_tl #2 / #3 } #4 }
           { \c_@@_help_text_tl }
           {
-             \use:c { \c_@@_more_text_prefix_tl #2 / #3 } #4
-             \tl_if_empty:NF #5
-               { \\ \\ #5 }
+            \use:c { \c_@@_more_text_prefix_tl #2 / #3 } #4
+            \tl_if_empty:NF #5
+              { \\ \\ #5 }
           }
       }
   }
@@ -1189,7 +1189,7 @@
         { nnVV , nnVn , nnnV , nnne , nnnx , nnee , nnxx }
       \cs_generate_variant:cn { msg_ #1 :nnnnn }
         { nnnee , nnnxx , nneee , nnxxx }
-       \cs_generate_variant:cn { msg_ #1 :nnnnnn } { nneeee , nnxxxx }
+      \cs_generate_variant:cn { msg_ #1 :nnnnnn } { nneeee , nnxxxx }
     }
 %    \end{macrocode}
 % \end{macro}
@@ -1403,14 +1403,14 @@
         {
           ( \l_@@_name_str )
           \prg_replicate:nn
-             {
-                 \str_count:N \l_@@_text_str
-               - \str_count:N \l_@@_name_str
-             }
+            {
+                \str_count:N \l_@@_text_str
+              - \str_count:N \l_@@_name_str
+            }
             { ~ }
-         }
-         { } #1
-       #1 { }
+        }
+        { } #1
+      #1 { }
     }
   \@@_class_new:nn { warning }
     {
@@ -2042,7 +2042,7 @@
     \msg_new:nnnn { kernel } { no-elapsed-time }
       { No~clock~detected~for~#1. }
       { The~current~engine~provides~no~way~to~access~the~system~time. }
-   }
+  }
 \msg_new:nnnn { kernel } { non-base-function }
   { Function~'#1'~is~not~a~base~function }
   {

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3names.dtx
 %
-% Copyright (C) 1990-2023 The LaTeX Project
+% Copyright (C) 1990-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3names} package\\ Namespace for primitives^^A
+%   The \pkg{l3names} module\\ Namespace for primitives^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -117,7 +117,7 @@
 %<*names|package>
 %    \end{macrocode}
 %
-% In the current incarnation of this package, all \TeX{} primitives
+% In the current incarnation of this module, all \TeX{} primitives
 % are given a new name of the form |\tex_|\emph{oldname}|:D|.
 % But first three special cases which have symbolic original names.
 % These are given modified new names, so that they may be entered
@@ -1096,7 +1096,7 @@
   \@@_primitive:NN \Umathoverbarrule      \tex_Umathoverbarrule:D
   \@@_primitive:NN \Umathoverbarvgap      \tex_Umathoverbarvgap:D
   \@@_primitive:NN \Umathoverdelimiterbgap
-     \tex_Umathoverdelimiterbgap:D
+    \tex_Umathoverdelimiterbgap:D
   \@@_primitive:NN \Umathoverdelimitervgap
     \tex_Umathoverdelimitervgap:D
   \@@_primitive:NN \Umathpunctbinspacing  \tex_Umathpunctbinspacing:D

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3pdf.dtx
 %
-% Copyright(C) 2019-2023 The LaTeX Project
+% Copyright(C) 2019-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3pdf} package\\ Core PDF support^^A
+%   The \pkg{l3pdf} module\\ Core PDF support^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -382,37 +382,37 @@
 \prg_new_conditional:Npnn \pdf_version_compare:Nn #1#2 { p , T , F , TF }
   { \use:c { @@_version_compare_ #1 :w } #2 . . \s_@@_stop }
 \cs_new:cpn { @@_version_compare_=:w } #1 . #2 . #3 \s_@@_stop
- {
-   \bool_lazy_and:nnTF
-    { \int_compare_p:nNn \@@_backend_version_major: = {#1} }
-    { \int_compare_p:nNn \@@_backend_version_minor: = {#2} }
-    { \prg_return_true: }
-    { \prg_return_false: }
- }
+  {
+    \bool_lazy_and:nnTF
+      { \int_compare_p:nNn \@@_backend_version_major: = {#1} }
+      { \int_compare_p:nNn \@@_backend_version_minor: = {#2} }
+      { \prg_return_true: }
+      { \prg_return_false: }
+  }
 \cs_new:cpn { @@_version_compare_<:w } #1 . #2 . #3 \s_@@_stop
- {
-   \bool_lazy_or:nnTF
-    { \int_compare_p:nNn \@@_backend_version_major: < {#1} }
-    {
-      \bool_lazy_and_p:nn
-        { \int_compare_p:nNn \@@_backend_version_major: = {#1} }
-        { \int_compare_p:nNn \@@_backend_version_minor: < {#2} }
-    }
-    { \prg_return_true: }
-    { \prg_return_false: }
- }
+  {
+    \bool_lazy_or:nnTF
+      { \int_compare_p:nNn \@@_backend_version_major: < {#1} }
+      {
+        \bool_lazy_and_p:nn
+          { \int_compare_p:nNn \@@_backend_version_major: = {#1} }
+          { \int_compare_p:nNn \@@_backend_version_minor: < {#2} }
+      }
+      { \prg_return_true: }
+      { \prg_return_false: }
+  }
 \cs_new:cpn { @@_version_compare_>:w } #1 . #2 . #3 \s_@@_stop
- {
-   \bool_lazy_or:nnTF
-    { \int_compare_p:nNn \@@_backend_version_major: > {#1} }
-    {
-      \bool_lazy_and_p:nn
-        { \int_compare_p:nNn \@@_backend_version_major: = {#1} }
-        { \int_compare_p:nNn \@@_backend_version_minor: > {#2} }
-    }
-    { \prg_return_true: }
-    { \prg_return_false: }
- }
+  {
+    \bool_lazy_or:nnTF
+      { \int_compare_p:nNn \@@_backend_version_major: > {#1} }
+      {
+        \bool_lazy_and_p:nn
+          { \int_compare_p:nNn \@@_backend_version_major: = {#1} }
+          { \int_compare_p:nNn \@@_backend_version_minor: > {#2} }
+      }
+      { \prg_return_true: }
+      { \prg_return_false: }
+  }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3prg.dtx
 %
-% Copyright (C) 2005-2023 The LaTeX Project
+% Copyright (C) 2005-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3prg} package\\ Control structures^^A
+%   The \pkg{l3prg} module\\ Control structures^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3prop.dtx
 %
-% Copyright (C) 1990-2023 The LaTeX Project
+% Copyright (C) 1990-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3prop} package\\ Property lists^^A
+%   The \pkg{l3prop} module\\ Property lists^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3quark.dtx
 %
-% Copyright (C) 1990-2023 The LaTeX Project
+% Copyright (C) 1990-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3quark} package\\ Quarks and scan marks^^A
+%   The \pkg{l3quark} module\\ Quarks and scan marks^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3regex.dtx
 %
-% Copyright (C) 2011-2023 The LaTeX Project
+% Copyright (C) 2011-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3regex} package\\ Regular expressions in \TeX{}^^A
+%   The \pkg{l3regex} module\\ Regular expressions in \TeX{}^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -52,7 +52,7 @@
 %   {\begin{itemize}\def\\{\char`\\}\def\makelabel##1{\hss\llap{\ttfamily##1}}}
 %   {\end{itemize}}
 %
-% The \pkg{l3regex} package provides regular expression testing,
+% The \pkg{l3regex} module provides regular expression testing,
 % extraction of submatches, splitting, and replacement, all acting
 % on token lists. The syntax of regular expressions is mostly a subset
 % of the \textsc{pcre} syntax (and very close to \textsc{posix}),
@@ -1377,7 +1377,7 @@
 %   in the input stream.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_break_true:w
-   #1 \@@_break_point:TF #2 #3 {#2}
+  #1 \@@_break_point:TF #2 #3 {#2}
 \cs_new_protected:Npn \@@_break_point:TF #1 #2 { #2 }
 %    \end{macrocode}
 % \end{macro}
@@ -3510,6 +3510,7 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{variable}{@@_cs}
 % \begin{macro}+\@@_compile_}:+
 % \begin{macro}{\@@_compile_end_cs:}
 % \begin{macro}[EXP]{\@@_compile_cs_aux:Nn, \@@_compile_cs_aux:NNnnnN}
@@ -3592,6 +3593,7 @@
 % \end{macro}
 % \end{macro}
 % \end{macro}
+% \end{variable}
 %
 % \subsubsection{Raw token lists with \cs[no-index]{u}}
 %
@@ -5354,7 +5356,7 @@
     \int_set:Nn \l_@@_curr_pos_int
       { \l_@@_start_pos_int - 1 }
     \int_set_eq:NN \l_@@_curr_char_int \l_@@_last_char_success_int
-    \tl_build_get:NN \l_@@_matched_analysis_tl \l_@@_internal_a_tl
+    \tl_build_get_intermediate:NN \l_@@_matched_analysis_tl \l_@@_internal_a_tl
     \exp_args:NNf \@@_match_once_init_aux:
     \tl_map_inline:nn
       { \exp_after:wN \l_@@_internal_a_tl \l_@@_curr_analysis_tl }
@@ -8113,7 +8115,7 @@
 \cs_new_protected:Npn \@@_trace_push:nnN #1#2#3
   { \@@_trace:nne {#1} {#2} { entering~ \token_to_str:N #3 } }
 \cs_new_protected:Npn \@@_trace_pop:nnN #1#2#3
-   { \@@_trace:nne {#1} {#2} { leaving~ \token_to_str:N #3 } }
+  { \@@_trace:nne {#1} {#2} { leaving~ \token_to_str:N #3 } }
 \cs_new_protected:Npn \@@_trace:nne #1#2#3
   {
     \int_compare:nNnF

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3seq.dtx
 %
-% Copyright (C) 1990-2023 The LaTeX Project
+% Copyright (C) 1990-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3seq} package\\ Sequences and stacks^^A
+%   The \pkg{l3seq} module\\ Sequences and stacks^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -1565,10 +1565,10 @@
             \if_false: { \fi: }
             \tl_set:Nn \l_@@_internal_b_tl {##1}
             #1 #2
-               { \if_false: } \fi:
-                 \exp_not:o {#2}
-                 \tl_if_eq:NNT \l_@@_internal_a_tl \l_@@_internal_b_tl
-                   { \use_none:nn }
+              { \if_false: } \fi:
+                \exp_not:o {#2}
+                \tl_if_eq:NNT \l_@@_internal_a_tl \l_@@_internal_b_tl
+                  { \use_none:nn }
           }
         \@@_wrap_item:n {##1}
       }

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -3,7 +3,7 @@
 %% File: l3skip.dtx
 %
 % Copyright (C) 2004-2011 Frank Mittelbach, The LaTeX Project
-%           (C) 2012-2023 The LaTeX Project
+%           (C) 2012-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -32,7 +32,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3skip} package\\ Dimensions and skips^^A
+%   The \pkg{l3skip} module\\ Dimensions and skips^^A
 % }
 %
 % \author{^^A
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -2269,8 +2269,8 @@
 \prg_new_conditional:Npnn \skip_if_eq:nn #1#2 { p , T , F , TF }
   {
     \str_if_eq:eeTF { \skip_eval:n {#1} } { \skip_eval:n {#2} }
-       { \prg_return_true: }
-       { \prg_return_false: }
+      { \prg_return_true: }
+      { \prg_return_false: }
   }
 %    \end{macrocode}
 % \end{macro}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File l3sort.dtx
 %
-% Copyright (C) 2012-2023 The LaTeX Project
+% Copyright (C) 2012-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3sort} package\\ Sorting functions^^A
+%   The \pkg{l3sort} module\\ Sorting functions^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3str-convert.dtx
 %
-% Copyright (C) 2013-2023 The LaTeX Project
+% Copyright (C) 2013-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -32,7 +32,7 @@
 %
 %
 % \title{^^A
-%   The \pkg{l3str-convert} package\\ String encoding conversions^^A
+%   The \pkg{l3str-convert} module\\ String encoding conversions^^A
 % }
 %
 % \author{^^A
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -469,14 +469,14 @@
 %    \begin{macrocode}
 \group_begin:
   \__kernel_tl_set:Ne \l_@@_internal_tl { \tl_to_str:n { 0123456789ABCDEF } }
-   \tl_map_inline:Nn \l_@@_internal_tl
-     {
-        \tl_map_inline:Nn \l_@@_internal_tl
-          {
-            \tl_const:ce { c_@@_byte_ \int_eval:n {"#1##1} _tl }
-               { \char_generate:nn { "#1##1 } { 12 } #1 ##1 }
-          }
-     }
+  \tl_map_inline:Nn \l_@@_internal_tl
+    {
+      \tl_map_inline:Nn \l_@@_internal_tl
+        {
+          \tl_const:ce { c_@@_byte_ \int_eval:n {"#1##1} _tl }
+            { \char_generate:nn { "#1##1 } { 12 } #1 ##1 }
+        }
+    }
 \group_end:
 \tl_const:cn { c_@@_byte_-1_tl } { { } \use_none:n { } }
 %    \end{macrocode}
@@ -1818,10 +1818,10 @@
 %
 % \begin{variable}
 %   {
-%     \l_@@_missing_flag  ,
-%     \l_@@_extra_flag    ,
-%     \l_@@_overlong_flag ,
-%     \l_@@_overflow_flag ,
+%     @@_missing  ,
+%     @@_extra    ,
+%     @@_overlong ,
+%     @@_overflow ,
 %   }
 %   When decoding a string that is purportedly in the \textsc{utf-8}
 %   encoding, four different errors can occur, signalled by a specific
@@ -2148,9 +2148,9 @@
 %
 % \begin{variable}
 %   {
-%     \l_@@_missing_flag ,
-%     \l_@@_extra_flag   ,
-%     \l_@@_end_flag     ,
+%     @@_missing ,
+%     @@_extra   ,
+%     @@_end     ,
 %   }
 %   When encoding a Unicode string to \textsc{utf-16}, only one error
 %   can occur: code points in the range $[\hexnum{D800},

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3str.dtx
 %
-% Copyright (C) 2011-2023 The LaTeX Project
+% Copyright (C) 2011-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3str} package\\ Strings^^A
+%   The \pkg{l3str} module\\ Strings^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -2051,9 +2051,9 @@
         \int_compare:nNnTF {`#2} < { "E0 }
           { \@@_change_case_codepoint:nNN }
           {
-             \int_compare:nNnTF {`#2} < { "F0 }
-               { \@@_change_case_codepoint:nNNN }
-               { \@@_change_case_codepoint:nNNNNN }
+            \int_compare:nNnTF {`#2} < { "F0 }
+              { \@@_change_case_codepoint:nNNN }
+              { \@@_change_case_codepoint:nNNNNN }
           }
             {#1} #2
       }
@@ -2113,7 +2113,7 @@
           {
             \codepoint_str_generate:n {#2}
             \tl_if_blank:nF {#3}
-             { \codepoint_str_generate:n {#3} }
+              { \codepoint_str_generate:n {#3} }
           }
       }
   }

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3sys.dtx
 %
-% Copyright (C) 2015-2023 The LaTeX Project
+% Copyright (C) 2015-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3sys} package\\ System/runtime functions^^A
+%   The \pkg{l3sys} module\\ System/runtime functions^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -1147,7 +1147,7 @@
         \sys_if_engine_xetex:TF
           { xetex }
           {
-             \sys_if_output_pdf:TF
+            \sys_if_output_pdf:TF
               {
                 \sys_if_engine_pdftex:TF
                   { pdftex }
@@ -1154,7 +1154,7 @@
                   { luatex }
               }
               { dvips }
-           }
+          }
       }
   }
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3text-case.dtx
 %
-% Copyright (C) 2020-2023 The LaTeX Project
+% Copyright (C) 2020-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3text-case} package\\ Text processing (case changing)^^A
+%   The \pkg{l3text-case} module\\ Text processing (case changing)^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -238,7 +238,7 @@
 %    \begin{macrocode}
 \cs_new:Npn \@@_change_case:nnnn #1#2#3#4
   {
-     \__kernel_exp_not:w \exp_after:wN
+    \__kernel_exp_not:w \exp_after:wN
       {
         \exp:w
         \exp_args:Ne \@@_change_case_auxi:nnnn
@@ -402,10 +402,10 @@
     \token_if_eq_meaning:NNTF #4 #5
       {
         \@@_use_i_delimit_by_q_recursion_stop:nw
-           {
-             \@@_change_case_store:n {#4}
-             \@@_change_case_math_loop:nnnNw {#1} {#2} {#3} #6
-           }
+          {
+            \@@_change_case_store:n {#4}
+            \@@_change_case_math_loop:nnnNw {#1} {#2} {#3} #6
+          }
       }
       { \@@_change_case_math_search:nnnNNN {#1} {#2} {#3} #4 }
   }
@@ -494,8 +494,8 @@
 \cs_new:Npn \@@_change_case_exclude:nnnNnn #1#2#3#4#5#6
   {
     \tl_if_blank:nTF {#5}
-       { \@@_change_case_store:n { #4 {#6} } }
-       {
+      { \@@_change_case_store:n { #4 {#6} } }
+      {
         \@@_change_case_store:o
           {
             \exp_after:wN #4
@@ -592,7 +592,7 @@
       {
         \@@_change_case_store:v
           { c_@@_ #1 case_ \token_to_str:N #6 _tl }
-         \use:c { @@_change_case_next_ #2 :nnn } {#2} {#4} {#5}
+        \use:c { @@_change_case_next_ #2 :nnn } {#2} {#4} {#5}
       }
       {
         \@@_change_case_store:n {#6}
@@ -786,10 +786,10 @@
             \codepoint_generate:nn {#2}
               { \char_value_catcode:n {#2} }
             \tl_if_blank:nF {#3}
-             {
-               \codepoint_generate:nn {#3}
-                 { \char_value_catcode:n {#3} }
-             }
+              {
+                \codepoint_generate:nn {#3}
+                  { \char_value_catcode:n {#3} }
+              }
           }
       }
   }
@@ -982,10 +982,10 @@
     \@@_codepoint_compare:nNnTF {#5} = { "00DF }
       {
         \@@_change_case_store:e
-         {
-           \codepoint_generate:nn { "1E9E }
-             { \@@_change_case_catcode:nn {#5} { "1E9E } }
-         }
+          {
+            \codepoint_generate:nn { "1E9E }
+              { \@@_change_case_catcode:nn {#5} { "1E9E } }
+          }
         \use:c { @@_change_case_next_ #2 :nnn }
           {#2} {#3} {#4}
       }
@@ -1482,7 +1482,7 @@
                 \else:
                   \if_int_compare:w #1 = "1FCF \exp_stop_f:
                     \prg_return_true:
-                   \else:
+                  \else:
                     \if_int_compare:w #1 = "1FDD \exp_stop_f:
                       \prg_return_true:
                     \else:
@@ -1745,15 +1745,15 @@
 \cs_new:Npn \@@_change_case_breathing:nnnnnnw #1#2#3#4#5#6#7 \q_mark
   {
     \tl_if_blank:nTF {#7}
-     {
-       \@@_change_case_breathing_aux:nnnnnn
-         {#1} {#2} {#3} {#4} {#5} {#6}
-     }
-     {
-       \@@_codepoint_process:nN
-         { \@@_change_case_breathing:nnnnnnw {#1} {#2} {#3} {#4} {#5} }
-           #7 \q_mark
-     }
+      {
+        \@@_change_case_breathing_aux:nnnnnn
+          {#1} {#2} {#3} {#4} {#5} {#6}
+      }
+      {
+        \@@_codepoint_process:nN
+          { \@@_change_case_breathing:nnnnnnw {#1} {#2} {#3} {#4} {#5} }
+          #7 \q_mark
+      }
   }
 \cs_new:Npn \@@_change_case_breathing_aux:nnnnnn #1#2#3#4#5#6
   {
@@ -1786,12 +1786,12 @@
   }
 \cs_new:Npn \@@_change_case_breathing_dialytika:nnnn #1#2#3#4
   {
-     \@@_change_case_if_takes_dialytika:nTF {#4}
-       {
-         \@@_change_case_upper_el_dialytika:n {#4}
-         \@@_change_case_loop:nnnw {#1} {#2} {#3}
-       }
-       { \@@_change_case_loop:nnnw {#1} {#2} {#3} #4 }
+    \@@_change_case_if_takes_dialytika:nTF {#4}
+      {
+        \@@_change_case_upper_el_dialytika:n {#4}
+        \@@_change_case_loop:nnnw {#1} {#2} {#3}
+      }
+      { \@@_change_case_loop:nnnw {#1} {#2} {#3} #4 }
   }
 %    \end{macrocode}
 % \end{macro}
@@ -1972,7 +1972,7 @@
     \tl_if_head_is_N_type:nTF {#4}
       { \@@_change_case_lower_lt:nnnN }
       { \@@_change_case_loop:nnnw }
-       {#1} {#2} {#3} #4 \q_@@_recursion_stop
+        {#1} {#2} {#3} #4 \q_@@_recursion_stop
   }
 \cs_new:Npn \@@_change_case_lower_lt:nnnN #1#2#3#4
   {
@@ -2021,7 +2021,7 @@
 %   combining char: drop it if present.
 %    \begin{macrocode}
 \cs_new:Npn \@@_change_case_upper_lt:nnnnn #1#2#3#4#5
- {
+  {
     \exp_args:Ne \@@_change_case_upper_lt_aux:nnnnn
       {
         \int_case:nn { \@@_codepoint_from_chars:Nw #5 }
@@ -2031,7 +2031,7 @@
             { "012F } { "012E }
           }  
       }
-        {#2} {#3} {#4} {#5}
+      {#2} {#3} {#4} {#5}
   }
 \cs_new:Npn \@@_change_case_upper_lt_aux:nnnnn #1#2#3#4#5
   {
@@ -2320,11 +2320,11 @@
 % for the Unicode engines
 %    \begin{macrocode}
 \bool_lazy_or:nnF
- { \sys_if_engine_luatex_p: }
- { \sys_if_engine_xetex_p: }
- {
-   \text_declare_uppercase_mapping:nn { "01F0 } { \v { J } }
- }
+  { \sys_if_engine_luatex_p: }
+  { \sys_if_engine_xetex_p: }
+  {
+    \text_declare_uppercase_mapping:nn { "01F0 } { \v { J } }
+  }
 %    \end{macrocode}
 %
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3text-map.dtx
 %
-% Copyright (C) 2022-2023 The LaTeX Project
+% Copyright (C) 2022-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3text-map} package\\ Text processing (mapping)^^A
+%   The \pkg{l3text-map} module\\ Text processing (mapping)^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3text-purify.dtx
 %
-% Copyright (C) 2020-2023 The LaTeX Project
+% Copyright (C) 2020-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3text-purify} package\\ Text processing (purification)^^A
+%   The \pkg{l3text-purify} module\\ Text processing (purification)^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -174,7 +174,7 @@
     \token_if_eq_meaning:NNTF #1 #2
       {
         \@@_use_i_delimit_by_q_recursion_stop:nw
-           { \@@_purify_math_start:NNw #2 #3 }
+          { \@@_purify_math_start:NNw #2 #3 }
       }
       { \@@_purify_math_search:NNN #1 }
   }

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3text.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3text.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3text.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3text.dtx
 %
-% Copyright (C) 2020-2023 The LaTeX Project
+% Copyright (C) 2020-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3text} package\\ Text processing^^A
+%   The \pkg{l3text} module\\ Text processing^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -605,15 +605,15 @@
             \if_catcode:w \exp_not:N #1 \c_space_token
               10
             \else:
-             \if_catcode:w \exp_not:N #1 \c_catcode_letter_token
-               11
-             \else:
-               \if_catcode:w \exp_not:N #1 \c_catcode_other_token
-                 12
-               \else:
-                 13
-               \fi:
-             \fi:
+              \if_catcode:w \exp_not:N #1 \c_catcode_letter_token
+                11
+              \else:
+                \if_catcode:w \exp_not:N #1 \c_catcode_other_token
+                  12
+                \else:
+                  13
+                \fi:
+              \fi:
             \fi:
           \fi:
         \fi:
@@ -683,9 +683,9 @@
         \int_compare:nNnTF { `#2 } < { "E0 }
           { \@@_codepoint_process:nNN }
           {
-             \int_compare:nNnTF { `#2 } < { "F0 }
-               { \@@_codepoint_process:nNNN }
-               { \@@_codepoint_process:nNNNN }
+            \int_compare:nNnTF { `#2 } < { "F0 }
+              { \@@_codepoint_process:nNNN }
+              { \@@_codepoint_process:nNNNN }
           }
             {#1} #2
         }
@@ -1045,10 +1045,10 @@
     \token_if_eq_meaning:NNTF #1 #2
       {
         \@@_use_i_delimit_by_q_recursion_stop:nw
-           {
-             \@@_expand_store:n {#1}
-             \@@_expand_math_loop:Nw #3
-           }
+          {
+            \@@_expand_store:n {#1}
+            \@@_expand_math_loop:Nw #3
+          }
       }
       { \@@_expand_math_search:NNN #1 }
   }

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3tl-analysis.dtx
 %
-% Copyright (C) 2011-2023 The LaTeX Project
+% Copyright (C) 2011-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -32,7 +32,7 @@
 %
 %
 % \title{^^A
-%   The \pkg{l3tl-analysis} package\\ Analysing token lists^^A
+%   The \pkg{l3tl-analysis} module\\ Analysing token lists^^A
 % }
 %
 % \author{^^A
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-build.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-build.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-build.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3tl-build.dtx
 %
-% Copyright (C) 2018-2023 The LaTeX Project
+% Copyright (C) 2018-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3tl-build} package\\ Piecewise \texttt{tl} constructions^^A
+%   The \pkg{l3tl-build} module\\ Piecewise \texttt{tl} constructions^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -106,6 +106,17 @@
 %   \texttt{tl} functions.
 % \end{function}
 %
+% \begin{function}[added = 2023-12-14]{\tl_build_get_intermediate:NN}
+%   \begin{syntax}
+%     \cs{tl_build_get_intermediate:NN} \meta{tl~var_1} \meta{tl~var_2}
+%   \end{syntax}
+%   Stores the contents of the \meta{tl~var_1} in the \meta{tl~var_2}.
+%   The \meta{tl~var_1} must have been set up with \cs{tl_build_begin:N}
+%   or \cs{tl_build_gbegin:N}.  The \meta{tl~var_2} is a
+%   \enquote{normal} token list variable, assigned locally using
+%   \cs{tl_set:Nn}.
+% \end{function}
+%
 % \end{documentation}
 %
 % \begin{implementation}
@@ -294,6 +305,13 @@
 % \end{macro}
 % \end{macro}
 %
+% \begin{macro}{\tl_build_get_intermediate:NN}
+%    \begin{macrocode}
+\cs_new_protected:Npn \tl_build_get_intermediate:NN
+  { \@@_build_get:NNN \__kernel_tl_set:Ne }
+%    \end{macrocode}
+% \end{macro}
+%
 % \begin{macro}{\@@_build_get:NNN}
 % \begin{macro}{\@@_build_get:w, \@@_build_get_end:w}
 %   The idea is to expand the \meta{tl~var} then the \meta{next~tl} and

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3tl.dtx
 %
-% Copyright (C) 1990-2023 The LaTeX Project
+% Copyright (C) 1990-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3tl} package\\ Token lists^^A
+%   The \pkg{l3tl} module\\ Token lists^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -330,8 +330,13 @@
 %     \cs{tl_if_novalue_p:n} \Arg{token list}
 %     \cs{tl_if_novalue:nTF} \Arg{token list} \Arg{true code} \Arg{false code}
 %   \end{syntax}
-%   Tests if the \meta{token list} is exactly equal to the special
-%   \cs{c_novalue_tl} marker. This function is intended to allow construction
+%   Tests if the \meta{token list} and the special \cs{c_novalue_tl} marker
+%   contain the same list of tokens, both in respect of character codes and
+%   category codes. This means that
+%   \cs{exp_args:No} \cs{tl_if_novalue:nTF} \{ \cs{c_novalue_tl} \} is 
+%   logically \texttt{true} but \cs{tl_if_novalue:nTF} \{  \cs{c_novalue_tl} \}
+%   is logically \texttt{false}.
+%   This function is intended to allow construction
 %   of flexible document interface structures in which missing optional
 %   arguments are detected.
 % \end{function}
@@ -2361,7 +2366,7 @@
     \else:
       \prg_return_false:
     \fi:
- }
+  }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3token.dtx
 %
-% Copyright (C) 2005-2023 The LaTeX Project
+% Copyright (C) 2005-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3token} package\\ Token manipulation^^A
+%   The \pkg{l3token} module\\ Token manipulation^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -2,7 +2,7 @@
 %
 %% File: l3unicode.dtx
 %
-% Copyright (C) 2018-2023 The LaTeX Project
+% Copyright (C) 2018-2024 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 % \fi
 %
 % \title{^^A
-%   The \pkg{l3unicode} package\\ Unicode support functions^^A
+%   The \pkg{l3unicode} module\\ Unicode support functions^^A
 % }
 %
 % \author{^^A
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-12-11}
+% \date{Released 2024-01-04}
 %
 % \maketitle
 %
@@ -172,7 +172,7 @@
           { ~ }
           { \char_generate:nn {#1} { 12 } }
       }
-   \cs_new:Npn \codepoint_generate:nn #1#2
+    \cs_new:Npn \codepoint_generate:nn #1#2
       {
         \int_compare:nNnTF {#1} = { `\  }
           { ~ }
@@ -245,11 +245,11 @@
               }
           }
       }
-     \cs_new:Npn \@@_generate:n #1
-       {
-         \__kernel_exp_not:w \exp_after:wN \exp_after:wN \exp_after:wN
-           { \char_generate:nn {#1} { 13 } }
-       }
+    \cs_new:Npn \@@_generate:n #1
+      {
+        \__kernel_exp_not:w \exp_after:wN \exp_after:wN \exp_after:wN
+          { \char_generate:nn {#1} { 13 } }
+      }
   }
 %    \end{macrocode}
 % \end{macro}
@@ -304,7 +304,7 @@
           \@@_to_bytes_outputi:nw
             {
               \@@_to_bytes_auxii:Nnn F
-                 {#1} { 64 * 64 * 64 }
+                {#1} { 64 * 64 * 64 }
             }
           \@@_to_bytes_outputii:nw
             {
@@ -628,18 +628,18 @@
 %    \begin{macrocode}
   \cs_set_protected:Npe \@@_data_auxv:nnnnw #1#2#3#4#5 Last> #6 \q_stop
     {
-       \exp_not:N \tl_if_blank:nTF {#6}
-         {
-           \exp_not:N \@@_range:nnn {#1} { category }
-             { \exp_not:V \l_@@_category_Cn_tl }
-           \exp_not:N \@@_range:nnn {#1} { uppercase } { 0 }
-           \exp_not:N \@@_range:nnn {#1} { lowercase } { 0 }
-         }
-         {
-           \exp_not:N \@@_range:nnn {#1} { category } {#2}
-           \exp_not:N \@@_range:nnn {#1} { uppercase } {#3}
-           \exp_not:N \@@_range:nnn {#1} { lowercase } {#4}
-         }      
+      \exp_not:N \tl_if_blank:nTF {#6}
+        {
+          \exp_not:N \@@_range:nnn {#1} { category }
+            { \exp_not:V \l_@@_category_Cn_tl }
+          \exp_not:N \@@_range:nnn {#1} { uppercase } { 0 }
+          \exp_not:N \@@_range:nnn {#1} { lowercase } { 0 }
+        }
+        {
+          \exp_not:N \@@_range:nnn {#1} { category } {#2}
+          \exp_not:N \@@_range:nnn {#1} { uppercase } {#3}
+          \exp_not:N \@@_range:nnn {#1} { lowercase } {#4}
+        }      
     }
 %    \end{macrocode}
 %  Calculated the length of the range and the space remaining in the current
@@ -676,20 +676,20 @@
     \int_compare:nNnT { \clist_count:c { l_@@_ #3 _block_clist } }
       = \c_@@_block_size_int
       { \@@_save_blocks:nn {#3} { 1 } }
-     \int_compare:nNnF
-       { \int_div_truncate:nn { #2 - #1 } \c_@@_block_size_int } = 0
-       {
-         \tl_set:ce { l_@@_ #3 _block_clist }
-           {
-             \exp_args:NNe \use:nn \use_none:n
-               { \prg_replicate:nn { \c_@@_block_size_int } { , #4 } }
-           }
-         \@@_save_blocks:nn {#3}
-           { \int_div_truncate:nn { (#2 - #1) } \c_@@_block_size_int }
-        }
-     \prg_replicate:nn
-       { \int_mod:nn { #2 - #1 } \c_@@_block_size_int }
-       { \clist_put_right:ce { l_@@_ #3 _block_clist } {#4} }
+    \int_compare:nNnF
+      { \int_div_truncate:nn { #2 - #1 } \c_@@_block_size_int } = 0
+      {
+        \tl_set:ce { l_@@_ #3 _block_clist }
+          {
+            \exp_args:NNe \use:nn \use_none:n
+              { \prg_replicate:nn { \c_@@_block_size_int } { , #4 } }
+          }
+        \@@_save_blocks:nn {#3}
+          { \int_div_truncate:nn { (#2 - #1) } \c_@@_block_size_int }
+      }
+    \prg_replicate:nn
+      { \int_mod:nn { #2 - #1 } \c_@@_block_size_int }
+      { \clist_put_right:ce { l_@@_ #3 _block_clist } {#4} }
     }
 %    \end{macrocode}
 %   To allow rapid comparison, each completed block is stored locally as a
@@ -742,13 +742,13 @@
           \@@_range:nnn { 110000 } {##1} { 0 }
           \@@_finalise_blocks:n {##1}
         }
-   }
+    }
   \cs_set_protected:Npn \@@_finalise_blocks:n #1
     {
       \cs_gset_eq:cc { c_@@_ #1 _index_intarray } { g_@@_ #1 _index_intarray }
       \cs_undefine:c { g_@@_ #1 _index_intarray }
       \intarray_new:cn { g_@@_ #1 _blocks_intarray }
-         { ( \tl_use:c { l_@@_ #1 _block_tl } - 1 ) * \c_@@_block_size_int }
+        { ( \tl_use:c { l_@@_ #1 _block_tl } - 1 ) * \c_@@_block_size_int }
       \int_step_inline:nn { \tl_use:c { l_@@_ #1 _block_tl } - 1 }
         {
           \exp_args:Nv \@@_finalise_blocks:nnn

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def	2024-01-05 21:44:47 UTC (rev 69310)
@@ -12,7 +12,7 @@
 %% l3backend-pdf.dtx  (with options: `package,dvipdfmx')
 %% l3backend-opacity.dtx  (with options: `package,dvipdfmx')
 %% 
-%% Copyright (C) 2019-2023 The LaTeX Project
+%% Copyright (C) 2019-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-dvipdfmx.def}{2023-11-09}{}
+  {l3backend-dvipdfmx.def}{2024-01-04}{}
   {L3 backend support: dvipdfmx}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -147,9 +147,9 @@
           {
             /Lab ~
             <<
-             /WhitePoint ~
-               [ \tl_use:c { c__color_model_whitepoint_CIELAB_ #1 _tl } ]
-             /Range ~ [ \c__color_model_range_CIELAB_tl ]
+              /WhitePoint ~
+                [ \tl_use:c { c__color_model_whitepoint_CIELAB_ #1 _tl } ]
+              /Range ~ [ \c__color_model_range_CIELAB_tl ]
             >>
           }
       }
@@ -183,7 +183,7 @@
             ]
         }
         { {#3} }
-     }
+      }
     \use:e
       {
         \pdf_object_new:n { color \int_use:N \g__color_model_int }
@@ -332,10 +332,10 @@
         \dim_to_decimal_in_bp:n {#5} ~ \dim_to_decimal_in_bp:n {#6} ~
         c
       }
- }
+  }
 \cs_new_protected:Npn \__draw_backend_rectangle:nnnn #1#2#3#4
   {
-     \__draw_backend_literal:e
+    \__draw_backend_literal:e
       {
         \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~
         \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~
@@ -452,7 +452,7 @@
           { \fp_eval:n { atand ( #3 , #2 ) } }
           { \fp_eval:n { atand ( #4 , #1 ) } }
       }
-         #5
+        #5
   }
 \cs_new_protected:Npn \__draw_backend_cm_decompose_auxii:nnnnN #1#2#3#4#5
   {
@@ -497,7 +497,7 @@
   {
     \seq_set_from_clist:Nn \l_graphics_search_ext_seq
       { .pdf , .eps , .ps , .png , .jpg , .jpeg , .bmp }
-   }
+  }
 \__graphics_backend_loaded:n
   {
     \cs_new_eq:NN \__graphics_backend_getbb_eps:n \__graphics_read_bb:n
@@ -549,7 +549,7 @@
         \tl_if_empty:NF \l__graphics_decodearray_str
           { :D \l__graphics_decodearray_str }
         \bool_if:NT \l__graphics_interpolate_bool
-           { :I }
+          { :I }
       }
       {#1} {#2}
   }
@@ -655,7 +655,7 @@
   }
 \cs_generate_variant:Nn \__pdf_backend_object_now:nn { ne }
 \cs_new:Npn \__pdf_backend_object_last:
- { @pdf.obj \int_use:N \g__pdf_backend_object_int }
+  { @pdf.obj \int_use:N \g__pdf_backend_object_int }
 \cs_new:Npn \__pdf_backend_pageobject_ref:n #1
   { @page #1 }
 \int_new:N \g__pdf_backend_annotation_int
@@ -673,7 +673,7 @@
       }
   }
 \cs_new:Npn \__pdf_backend_annotation_last:
- { @pdf.obj \int_use:N \g__pdf_backend_annotation_int }
+  { @pdf.obj \int_use:N \g__pdf_backend_annotation_int }
 \int_new:N \g__pdf_backend_link_int
 \cs_new_protected:Npn \__pdf_backend_link_begin_goto:nnw #1#2
   { \__pdf_backend_link_begin:n { #1 /Subtype /Link /A << /S /GoTo /D ( #2 ) >> } }
@@ -684,14 +684,14 @@
     \exp_not:N \int_gincr:N \exp_not:N  \g__pdf_backend_link_int
     \__pdf_backend:e
       {
-         bann ~
-         @pdf.lnk
-         \exp_not:N \int_use:N \exp_not:N  \g__pdf_backend_link_int
-         \c_space_tl
-         <<
-           /Type /Annot
-           #1
-         >>
+        bann ~
+        @pdf.lnk
+        \exp_not:N \int_use:N \exp_not:N  \g__pdf_backend_link_int
+        \c_space_tl
+        <<
+          /Type /Annot
+          #1
+        >>
       }
   }
 \cs_new_protected:Npn \__pdf_backend_link_end:
@@ -806,10 +806,10 @@
 \tl_new:N \l__opacity_backend_fill_tl
 \tl_new:N \l__opacity_backend_stroke_tl
 \cs_new_protected:Npn \__opacity_backend_select:n #1
- {
-   \exp_args:Ne \__opacity_backend_select_aux:n
-     { \fp_eval:n { min(max(0,#1),1) } }
- }
+  {
+    \exp_args:Ne \__opacity_backend_select_aux:n
+      { \fp_eval:n { min(max(0,#1),1) } }
+  }
 \cs_new_protected:Npn \__opacity_backend_select_aux:n #1
   {
     \tl_set:Nn \l__opacity_backend_fill_tl {#1}
@@ -828,10 +828,10 @@
     \cs_gset_protected:Npn \__opacity_backend_select_aux:n #1 { }
   }
 \cs_new_protected:Npn \__opacity_backend_reset:
- {
-   \__kernel_backend_literal_pdf:n
+  {
+    \__kernel_backend_literal_pdf:n
       { /opacity1 ~ gs }
- }
+  }
 \cs_new_protected:Npn \__opacity_backend_fill:n #1
   {
     \__opacity_backend_fill_stroke:ee
@@ -857,8 +857,8 @@
         \pdfmanagement_add:nnn { Page / Resources / ExtGState }
           { opacity.stroke #1 }
           { << /CA ~ #2 >> }
-    \__kernel_backend_literal_pdf:n
-         { /opacity.fill #1 ~ gs /opacity.stroke #2 ~ gs }
+        \__kernel_backend_literal_pdf:n
+          { /opacity.fill #1 ~ gs /opacity.stroke #2 ~ gs }
         \group_insert_after:N \__opacity_backend_reset:
       }
   }

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def	2024-01-05 21:44:47 UTC (rev 69310)
@@ -12,7 +12,7 @@
 %% l3backend-pdf.dtx  (with options: `package,dvips')
 %% l3backend-opacity.dtx  (with options: `package,dvips')
 %% 
-%% Copyright (C) 2019-2023 The LaTeX Project
+%% Copyright (C) 2019-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-dvips.def}{2023-11-09}{}
+  {l3backend-dvips.def}{2024-01-04}{}
   {L3 backend support: dvips}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -185,9 +185,9 @@
   }
 \cs_new:Npn \__color_backend_separation_init:nnn #1#2#3
   {
-   \exp_args:Ne \__color_backend_separation_init:nnnn
-     { \__color_backend_separation_init_count:n {#2} }
-     {#1} {#2} {#3}
+    \exp_args:Ne \__color_backend_separation_init:nnnn
+      { \__color_backend_separation_init_count:n {#2} }
+      {#1} {#2} {#3}
   }
 \cs_new:Npn \__color_backend_separation_init_count:n #1
   { \int_eval:n { 0 \__color_backend_separation_init_count:w #1 ~ \s__color_stop } }
@@ -225,15 +225,15 @@
   { \int_eval:n { #1 * 2 } ~ index ~ }
 \cs_new:Npn \__color_backend_separation_init:nw #1#2 ~ #3 ~ #4 \s__color_stop
   {
-     #2 ~ #3 ~
-     2 ~ index ~ 2 ~ index ~ lt ~
-       { ~ pop ~ exch ~ pop ~ } ~
-       { ~
-         2 ~ index ~ 1 ~ index ~ gt ~
-           { ~ exch ~ pop ~ exch ~ pop ~ } ~
-           { ~ pop ~ pop ~ } ~
-         ifelse ~
-       }
+    #2 ~ #3 ~
+    2 ~ index ~ 2 ~ index ~ lt ~
+      { ~ pop ~ exch ~ pop ~ } ~
+      { ~
+        2 ~ index ~ 1 ~ index ~ gt ~
+          { ~ exch ~ pop ~ exch ~ pop ~ } ~
+          { ~ pop ~ pop ~ } ~
+        ifelse ~
+      }
     ifelse ~
     #1 ~ 1 ~ roll ~
     \tl_if_blank:nF {#4}
@@ -365,9 +365,9 @@
           { \fp_eval:n { round ( -(#2) , 5 ) } } ~
         rotate
       }
-   \__kernel_backend_align_end:
-   \box_use:N #1
-   \__kernel_backend_scope_end:
+    \__kernel_backend_align_end:
+    \box_use:N #1
+    \__kernel_backend_scope_end:
   }
 \cs_new_protected:Npn \__box_backend_scale:Nnn #1#2#3
   {
@@ -418,11 +418,11 @@
   }
 \cs_new_protected:Npn \__draw_backend_rectangle:nnnn #1#2#3#4
   {
-     \__draw_backend_literal:e
-       {
-         \dim_to_decimal_in_bp:n {#4} ~ \dim_to_decimal_in_bp:n {#3} ~
-         \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~
-         moveto~dup~0~rlineto~exch~0~exch~rlineto~neg~0~rlineto~closepath
+    \__draw_backend_literal:e
+      {
+        \dim_to_decimal_in_bp:n {#4} ~ \dim_to_decimal_in_bp:n {#3} ~
+        \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~
+        moveto~dup~0~rlineto~exch~0~exch~rlineto~neg~0~rlineto~closepath
       }
   }
 \cs_new_protected:Npn \__draw_backend_curveto:nnnnnn #1#2#3#4#5#6
@@ -434,7 +434,7 @@
         \dim_to_decimal_in_bp:n {#5} ~ \dim_to_decimal_in_bp:n {#6} ~
         curveto
       }
- }
+  }
 \cs_new_protected:Npn \__draw_backend_evenodd_rule:
   { \bool_gset_true:N \g__draw_draw_eor_bool }
 \cs_new_protected:Npn \__draw_backend_nonzero_rule:
@@ -787,9 +787,9 @@
     \hbox_set:Nn \l__pdf_backend_model_box { Gg }
     \exp_args:Ne \__pdf_backend_link_outerbox:n
       {
-         \int_if_odd:nTF { \value { page } }
-           { \oddsidemargin }
-           { \evensidemargin }
+        \int_if_odd:nTF { \value { page } }
+          { \oddsidemargin }
+          { \evensidemargin }
       }
     \box_move_down:nn { \box_dp:N \l__pdf_backend_content_box }
       { \hbox:n { \__kernel_backend_postscript:n { pdf.save.linkll } } }
@@ -981,7 +981,7 @@
         \__kernel_backend_literal_postscript:n
           {
             /setdistillerparams ~ where
-             { pop << /CompressPages ~ false >> setdistillerparams }
+              { pop << /CompressPages ~ false >> setdistillerparams }
             if
           }
       }
@@ -993,7 +993,7 @@
         \__kernel_backend_literal_postscript:n
           {
             /setdistillerparams ~ where
-             { pop << /CompressStreams ~ false >> setdistillerparams }
+              { pop << /CompressStreams ~ false >> setdistillerparams }
             if
           }
       }

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def	2024-01-05 21:44:47 UTC (rev 69310)
@@ -12,7 +12,7 @@
 %% l3backend-pdf.dtx  (with options: `package,dvisvgm')
 %% l3backend-opacity.dtx  (with options: `package,dvisvgm')
 %% 
-%% Copyright (C) 2019-2023 The LaTeX Project
+%% Copyright (C) 2019-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-dvisvgm.def}{2023-11-09}{}
+  {l3backend-dvisvgm.def}{2024-01-04}{}
   {L3 backend support: dvisvgm}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -181,14 +181,14 @@
     \__kernel_backend_scope:n
       {
         stroke =
-         "
-           rgb
-             (
-               #1 \c_percent_str ,
-               #2 \c_percent_str ,
-               #3 \c_percent_str
-             )
-         "
+          "
+            rgb
+              (
+                #1 \c_percent_str ,
+                #2 \c_percent_str ,
+                #3 \c_percent_str
+              )
+          "
       }
   }
 \cs_new_protected:Npn \__color_backend_fill_separation:nn #1#2 { }
@@ -450,8 +450,8 @@
   {
     \__kernel_backend_scope:n
       {
-       transform =
-         " matrix ( #1 , #2 , #3 , #4 , 0pt , 0pt ) "
+        transform =
+          " matrix ( #1 , #2 , #3 , #4 , 0pt , 0pt ) "
       }
   }
 \cs_new_protected:Npn \__draw_backend_box_use:Nnnnn #1#2#3#4#5
@@ -544,7 +544,7 @@
                       { \__graphics_backend_getbb_svg_auxiv:Nw #2 }
                       { \__graphics_backend_getbb_svg_auxv:Nw #2 }
                   }
-               }
+              }
                 ##2 \s__graphics_stop
           }
       }
@@ -553,7 +553,7 @@
         \__graphics_backend_getbb_svg_auxii:w #3
           \tl_to_str:n {#1} = \tl_to_str:n {#1} =
           \s__graphics_stop
-       }
+      }
   }
 \cs_new_protected:Npn \__graphics_backend_getbb_svg_auxii:w { }
 \cs_new_protected:Npn \__graphics_backend_getbb_svg_auxiii:Nw #1 ' #2 ' #3 \s__graphics_stop

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def	2024-01-05 21:44:47 UTC (rev 69310)
@@ -12,7 +12,7 @@
 %% l3backend-pdf.dtx  (with options: `package,luatex')
 %% l3backend-opacity.dtx  (with options: `package,luatex')
 %% 
-%% Copyright (C) 2019-2023 The LaTeX Project
+%% Copyright (C) 2019-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-luatex.def}{2023-11-09}{}
+  {l3backend-luatex.def}{2024-01-04}{}
   {L3 backend support: PDF output (LuaTeX)}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -203,9 +203,9 @@
           {
             /Lab ~
             <<
-             /WhitePoint ~
-               [ \tl_use:c { c__color_model_whitepoint_CIELAB_ #1 _tl } ]
-             /Range ~ [ \c__color_model_range_CIELAB_tl ]
+              /WhitePoint ~
+                [ \tl_use:c { c__color_model_whitepoint_CIELAB_ #1 _tl } ]
+              /Range ~ [ \c__color_model_range_CIELAB_tl ]
             >>
           }
       }
@@ -239,7 +239,7 @@
             ]
         }
         { {#3} }
-     }
+      }
     \use:e
       {
         \pdf_object_new:n { color \int_use:N \g__color_model_int }
@@ -365,8 +365,8 @@
         \c_space_tl
         \fp_use:N \l__box_backend_cos_fp
       }
-   \box_use:N #1
-   \__kernel_backend_scope_end:
+    \box_use:N #1
+    \__kernel_backend_scope_end:
   }
 \fp_new:N \l__box_backend_cos_fp
 \fp_new:N \l__box_backend_sin_fp
@@ -410,10 +410,10 @@
         \dim_to_decimal_in_bp:n {#5} ~ \dim_to_decimal_in_bp:n {#6} ~
         c
       }
- }
+  }
 \cs_new_protected:Npn \__draw_backend_rectangle:nnnn #1#2#3#4
   {
-     \__draw_backend_literal:e
+    \__draw_backend_literal:e
       {
         \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~
         \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~
@@ -613,7 +613,7 @@
               }
           }
           {#1}
-     }
+      }
     \cs_new_eq:NN \__graphics_backend_getbb_ps:n \__graphics_backend_getbb_eps:n
     \cs_new_protected:Npn \__graphics_backend_getbb_eps:nn #1#2
       {
@@ -848,10 +848,10 @@
 \tl_new:N \l__opacity_backend_fill_tl
 \tl_new:N \l__opacity_backend_stroke_tl
 \cs_new_protected:Npn \__opacity_backend_select:n #1
- {
-   \exp_args:Ne \__opacity_backend_select_aux:n
-     { \fp_eval:n { min(max(0,#1),1) } }
- }
+  {
+    \exp_args:Ne \__opacity_backend_select_aux:n
+      { \fp_eval:n { min(max(0,#1),1) } }
+  }
 \cs_new_protected:Npn \__opacity_backend_select_aux:n #1
   {
     \tl_set:Nn \l__opacity_backend_fill_tl {#1}
@@ -870,9 +870,9 @@
     \cs_gset_protected:Npn \__opacity_backend_select_aux:n #1 { }
   }
 \cs_new_protected:Npn \__opacity_backend_reset:
- {
+  {
     \__kernel_color_backend_stack_pop:n \c__opacity_backend_stack_int
- }
+  }
 \cs_new_protected:Npn \__opacity_backend_fill:n #1
   {
     \__opacity_backend_fill_stroke:ee
@@ -898,8 +898,8 @@
         \pdfmanagement_add:nnn { Page / Resources / ExtGState }
           { opacity.stroke #1 }
           { << /CA ~ #2 >> }
-    \__kernel_color_backend_stack_push:nn \c__opacity_backend_stack_int
-         { /opacity.fill #1 ~ gs /opacity.stroke #2 ~ gs }
+        \__kernel_color_backend_stack_push:nn \c__opacity_backend_stack_int
+          { /opacity.fill #1 ~ gs /opacity.stroke #2 ~ gs }
         \group_insert_after:N \__opacity_backend_reset:
       }
   }

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.lua	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.lua	2024-01-05 21:44:47 UTC (rev 69310)
@@ -7,7 +7,7 @@
 -- l3backend-color.dtx  (with options: `lua')
 -- l3backend-opacity.dtx  (with options: `lua')
 -- 
--- Copyright (C) 2023 The LaTeX Project
+-- Copyright (C) 2023,2024 The LaTeX Project
 -- 
 -- It may be distributed and/or modified under the conditions of
 -- the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def	2024-01-05 21:44:47 UTC (rev 69310)
@@ -12,7 +12,7 @@
 %% l3backend-pdf.dtx  (with options: `package,pdftex')
 %% l3backend-opacity.dtx  (with options: `package,pdftex')
 %% 
-%% Copyright (C) 2019-2023 The LaTeX Project
+%% Copyright (C) 2019-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-pdftex.def}{2023-11-09}{}
+  {l3backend-pdftex.def}{2024-01-04}{}
   {L3 backend support: PDF output (pdfTeX)}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -203,9 +203,9 @@
           {
             /Lab ~
             <<
-             /WhitePoint ~
-               [ \tl_use:c { c__color_model_whitepoint_CIELAB_ #1 _tl } ]
-             /Range ~ [ \c__color_model_range_CIELAB_tl ]
+              /WhitePoint ~
+                [ \tl_use:c { c__color_model_whitepoint_CIELAB_ #1 _tl } ]
+              /Range ~ [ \c__color_model_range_CIELAB_tl ]
             >>
           }
       }
@@ -239,7 +239,7 @@
             ]
         }
         { {#3} }
-     }
+      }
     \use:e
       {
         \pdf_object_new:n { color \int_use:N \g__color_model_int }
@@ -364,8 +364,8 @@
         \c_space_tl
         \fp_use:N \l__box_backend_cos_fp
       }
-   \box_use:N #1
-   \__kernel_backend_scope_end:
+    \box_use:N #1
+    \__kernel_backend_scope_end:
   }
 \fp_new:N \l__box_backend_cos_fp
 \fp_new:N \l__box_backend_sin_fp
@@ -409,10 +409,10 @@
         \dim_to_decimal_in_bp:n {#5} ~ \dim_to_decimal_in_bp:n {#6} ~
         c
       }
- }
+  }
 \cs_new_protected:Npn \__draw_backend_rectangle:nnnn #1#2#3#4
   {
-     \__draw_backend_literal:e
+    \__draw_backend_literal:e
       {
         \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~
         \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~
@@ -612,7 +612,7 @@
               }
           }
           {#1}
-     }
+      }
     \cs_new_eq:NN \__graphics_backend_getbb_ps:n \__graphics_backend_getbb_eps:n
     \cs_new_protected:Npn \__graphics_backend_getbb_eps:nn #1#2
       {
@@ -847,10 +847,10 @@
 \tl_new:N \l__opacity_backend_fill_tl
 \tl_new:N \l__opacity_backend_stroke_tl
 \cs_new_protected:Npn \__opacity_backend_select:n #1
- {
-   \exp_args:Ne \__opacity_backend_select_aux:n
-     { \fp_eval:n { min(max(0,#1),1) } }
- }
+  {
+    \exp_args:Ne \__opacity_backend_select_aux:n
+      { \fp_eval:n { min(max(0,#1),1) } }
+  }
 \cs_new_protected:Npn \__opacity_backend_select_aux:n #1
   {
     \tl_set:Nn \l__opacity_backend_fill_tl {#1}
@@ -869,9 +869,9 @@
     \cs_gset_protected:Npn \__opacity_backend_select_aux:n #1 { }
   }
 \cs_new_protected:Npn \__opacity_backend_reset:
- {
+  {
     \__kernel_color_backend_stack_pop:n \c__opacity_backend_stack_int
- }
+  }
 \cs_new_protected:Npn \__opacity_backend_fill:n #1
   {
     \__opacity_backend_fill_stroke:ee
@@ -897,8 +897,8 @@
         \pdfmanagement_add:nnn { Page / Resources / ExtGState }
           { opacity.stroke #1 }
           { << /CA ~ #2 >> }
-    \__kernel_color_backend_stack_push:nn \c__opacity_backend_stack_int
-         { /opacity.fill #1 ~ gs /opacity.stroke #2 ~ gs }
+        \__kernel_color_backend_stack_push:nn \c__opacity_backend_stack_int
+          { /opacity.fill #1 ~ gs /opacity.stroke #2 ~ gs }
         \group_insert_after:N \__opacity_backend_reset:
       }
   }

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def	2024-01-05 21:44:47 UTC (rev 69310)
@@ -12,7 +12,7 @@
 %% l3backend-pdf.dtx  (with options: `package,xetex')
 %% l3backend-opacity.dtx  (with options: `package,xetex')
 %% 
-%% Copyright (C) 2019-2023 The LaTeX Project
+%% Copyright (C) 2019-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-xetex.def}{2023-11-09}{}
+  {l3backend-xetex.def}{2024-01-04}{}
   {L3 backend support: XeTeX}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -147,9 +147,9 @@
           {
             /Lab ~
             <<
-             /WhitePoint ~
-               [ \tl_use:c { c__color_model_whitepoint_CIELAB_ #1 _tl } ]
-             /Range ~ [ \c__color_model_range_CIELAB_tl ]
+              /WhitePoint ~
+                [ \tl_use:c { c__color_model_whitepoint_CIELAB_ #1 _tl } ]
+              /Range ~ [ \c__color_model_range_CIELAB_tl ]
             >>
           }
       }
@@ -183,7 +183,7 @@
             ]
         }
         { {#3} }
-     }
+      }
     \use:e
       {
         \pdf_object_new:n { color \int_use:N \g__color_model_int }
@@ -332,10 +332,10 @@
         \dim_to_decimal_in_bp:n {#5} ~ \dim_to_decimal_in_bp:n {#6} ~
         c
       }
- }
+  }
 \cs_new_protected:Npn \__draw_backend_rectangle:nnnn #1#2#3#4
   {
-     \__draw_backend_literal:e
+    \__draw_backend_literal:e
       {
         \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~
         \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~
@@ -452,7 +452,7 @@
           { \fp_eval:n { atand ( #3 , #2 ) } }
           { \fp_eval:n { atand ( #4 , #1 ) } }
       }
-         #5
+        #5
   }
 \cs_new_protected:Npn \__draw_backend_cm_decompose_auxii:nnnnN #1#2#3#4#5
   {
@@ -497,7 +497,7 @@
   {
     \seq_set_from_clist:Nn \l_graphics_search_ext_seq
       { .pdf , .eps , .ps , .png , .jpg , .jpeg , .bmp }
-   }
+  }
 \__graphics_backend_loaded:n
   {
     \cs_new_eq:NN \__graphics_backend_getbb_eps:n \__graphics_read_bb:n
@@ -532,7 +532,7 @@
         \tl_if_empty:NF \l__graphics_decodearray_str
           { :D \l__graphics_decodearray_str }
         \bool_if:NT \l__graphics_interpolate_bool
-           { :I }
+          { :I }
       }
       {#1} {#2}
   }
@@ -709,7 +709,7 @@
   }
 \cs_generate_variant:Nn \__pdf_backend_object_now:nn { ne }
 \cs_new:Npn \__pdf_backend_object_last:
- { @pdf.obj \int_use:N \g__pdf_backend_object_int }
+  { @pdf.obj \int_use:N \g__pdf_backend_object_int }
 \cs_new:Npn \__pdf_backend_pageobject_ref:n #1
   { @page #1 }
 \int_new:N \g__pdf_backend_annotation_int
@@ -727,7 +727,7 @@
       }
   }
 \cs_new:Npn \__pdf_backend_annotation_last:
- { @pdf.obj \int_use:N \g__pdf_backend_annotation_int }
+  { @pdf.obj \int_use:N \g__pdf_backend_annotation_int }
 \int_new:N \g__pdf_backend_link_int
 \cs_new_protected:Npn \__pdf_backend_link_begin_goto:nnw #1#2
   { \__pdf_backend_link_begin:n { #1 /Subtype /Link /A << /S /GoTo /D ( #2 ) >> } }
@@ -738,14 +738,14 @@
     \exp_not:N \int_gincr:N \exp_not:N  \g__pdf_backend_link_int
     \__pdf_backend:e
       {
-         bann ~
-         @pdf.lnk
-         \exp_not:N \int_use:N \exp_not:N  \g__pdf_backend_link_int
-         \c_space_tl
-         <<
-           /Type /Annot
-           #1
-         >>
+        bann ~
+        @pdf.lnk
+        \exp_not:N \int_use:N \exp_not:N  \g__pdf_backend_link_int
+        \c_space_tl
+        <<
+          /Type /Annot
+          #1
+        >>
       }
   }
 \cs_new_protected:Npn \__pdf_backend_link_end:
@@ -853,10 +853,10 @@
 \tl_new:N \l__opacity_backend_fill_tl
 \tl_new:N \l__opacity_backend_stroke_tl
 \cs_new_protected:Npn \__opacity_backend_select:n #1
- {
-   \exp_args:Ne \__opacity_backend_select_aux:n
-     { \fp_eval:n { min(max(0,#1),1) } }
- }
+  {
+    \exp_args:Ne \__opacity_backend_select_aux:n
+      { \fp_eval:n { min(max(0,#1),1) } }
+  }
 \cs_new_protected:Npn \__opacity_backend_select_aux:n #1
   {
     \tl_set:Nn \l__opacity_backend_fill_tl {#1}
@@ -875,10 +875,10 @@
     \cs_gset_protected:Npn \__opacity_backend_select_aux:n #1 { }
   }
 \cs_new_protected:Npn \__opacity_backend_reset:
- {
-   \__kernel_backend_literal_pdf:n
+  {
+    \__kernel_backend_literal_pdf:n
       { /opacity1 ~ gs }
- }
+  }
 \cs_new_protected:Npn \__opacity_backend_fill:n #1
   {
     \__opacity_backend_fill_stroke:ee
@@ -904,8 +904,8 @@
         \pdfmanagement_add:nnn { Page / Resources / ExtGState }
           { opacity.stroke #1 }
           { << /CA ~ #2 >> }
-    \__kernel_backend_literal_pdf:n
-         { /opacity.fill #1 ~ gs /opacity.stroke #2 ~ gs }
+        \__kernel_backend_literal_pdf:n
+          { /opacity.fill #1 ~ gs /opacity.stroke #2 ~ gs }
         \group_insert_after:N \__opacity_backend_reset:
       }
   }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% l3benchmark.dtx  (with options: `package')
 %% 
-%% Copyright (C) 2018-2023 The LaTeX Project
+%% Copyright (C) 2018-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -20,7 +20,7 @@
 %% 
 %% File: l3benchmark.dtx
 \RequirePackage{expl3}
-\ProvidesExplPackage{l3benchmark}{2023-12-08}{}
+\ProvidesExplPackage{l3benchmark}{2024-01-04}{}
   {L3 Experimental benchmarking}
 \fp_new:N \g_benchmark_duration_target_fp
 \fp_gset:Nn \g_benchmark_duration_target_fp { 1 }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty	2024-01-05 21:44:47 UTC (rev 69310)
@@ -14,7 +14,7 @@
 %% l3draw-state.dtx  (with options: `package')
 %% l3draw-transforms.dtx  (with options: `package')
 %% 
-%% Copyright (C) 2018-2023 The LaTeX Project
+%% Copyright (C) 2018-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -29,7 +29,7 @@
 %% File: l3draw.dtx
 \RequirePackage{expl3}
 
-\ProvidesExplPackage{l3draw}{2023-12-08}{}
+\ProvidesExplPackage{l3draw}{2024-01-04}{}
   {L3 Experimental core drawing support}
 \scan_new:N \s__draw_mark
 \scan_new:N \s__draw_stop
@@ -287,9 +287,9 @@
   }
 \cs_new_protected:Npn \__draw_path_moveto:nn #1#2
   {
-     \__draw_path_update_limits:nn {#1} {#2}
-     \__draw_softpath_moveto:nn {#1} {#2}
-     \__draw_path_update_last:nn {#1} {#2}
+    \__draw_path_update_limits:nn {#1} {#2}
+    \__draw_softpath_moveto:nn {#1} {#2}
+    \__draw_path_update_last:nn {#1} {#2}
   }
 \cs_new_protected:Npn \draw_path_lineto:n #1
   {
@@ -299,10 +299,10 @@
   }
 \cs_new_protected:Npn \__draw_path_lineto:nn #1#2
   {
-     \__draw_path_mark_corner:
-     \__draw_path_update_limits:nn {#1} {#2}
-     \__draw_softpath_lineto:nn {#1} {#2}
-     \__draw_path_update_last:nn {#1} {#2}
+    \__draw_path_mark_corner:
+    \__draw_path_update_limits:nn {#1} {#2}
+    \__draw_softpath_lineto:nn {#1} {#2}
+    \__draw_path_update_last:nn {#1} {#2}
   }
 \cs_new_protected:Npn \draw_path_curveto:nnn #1#2#3
   {
@@ -317,11 +317,11 @@
   }
 \cs_new_protected:Npn \__draw_path_curveto:nnnnnn #1#2#3#4#5#6
   {
-     \__draw_path_update_limits:nn {#1} {#2}
-     \__draw_path_update_limits:nn {#3} {#4}
-     \__draw_path_update_limits:nn {#5} {#6}
-     \__draw_softpath_curveto:nnnnnn {#1} {#2} {#3} {#4} {#5} {#6}
-     \__draw_path_update_last:nn {#5} {#6}
+    \__draw_path_update_limits:nn {#1} {#2}
+    \__draw_path_update_limits:nn {#3} {#4}
+    \__draw_path_update_limits:nn {#5} {#6}
+    \__draw_softpath_curveto:nnnnnn {#1} {#2} {#3} {#4} {#5} {#6}
+    \__draw_path_update_last:nn {#5} {#6}
   }
 \cs_new_protected:Npn \draw_path_close:
   {
@@ -354,32 +354,32 @@
     \fp_set:Nn \l__draw_path_tmpb_fp { \c__draw_path_curveto_b_fp * #2 }
     \use:e
       {
-         \__draw_path_mark_corner:
-         \__draw_path_curveto:nnnnnn
-           {
-             \fp_to_dim:n
-               {
-                   \c__draw_path_curveto_a_fp * \g__draw_path_lastx_dim
-                 + \l__draw_path_tmpa_fp
-               }
-           }
-           {
-             \fp_to_dim:n
-               {
-                   \c__draw_path_curveto_a_fp * \g__draw_path_lasty_dim
-                 + \l__draw_path_tmpb_fp
-               }
-           }
-           {
-             \fp_to_dim:n
-               { \c__draw_path_curveto_a_fp * #3 + \l__draw_path_tmpa_fp }
-           }
-           {
-             \fp_to_dim:n
-               { \c__draw_path_curveto_a_fp * #4 + \l__draw_path_tmpb_fp }
-           }
-           {#3}
-           {#4}
+        \__draw_path_mark_corner:
+        \__draw_path_curveto:nnnnnn
+          {
+            \fp_to_dim:n
+              {
+                  \c__draw_path_curveto_a_fp * \g__draw_path_lastx_dim
+                + \l__draw_path_tmpa_fp
+              }
+          }
+          {
+            \fp_to_dim:n
+              {
+                  \c__draw_path_curveto_a_fp * \g__draw_path_lasty_dim
+                + \l__draw_path_tmpb_fp
+              }
+          }
+          {
+            \fp_to_dim:n
+              { \c__draw_path_curveto_a_fp * #3 + \l__draw_path_tmpa_fp }
+          }
+          {
+            \fp_to_dim:n
+              { \c__draw_path_curveto_a_fp * #4 + \l__draw_path_tmpb_fp }
+          }
+          {#3}
+          {#4}
       }
   }
 \fp_const:Nn \c__draw_path_curveto_a_fp { 1 / 3 }
@@ -395,7 +395,7 @@
           { \fp_eval:n {#2} }
           { \fp_to_dim:n {#3} }
           { \fp_to_dim:n {#4} }
-       }
+      }
   }
 \cs_new_protected:Npn \__draw_path_arc:nnnn #1#2#3#4
   {
@@ -411,7 +411,7 @@
       {
         \fp_compare:nNnTF \l__draw_path_arc_delta_fp > { 115 }
           {
-            \__draw_path_arc_auxi:ffnnNnn
+            \__draw_path_arc_auxi:eennNnn
               { \fp_to_decimal:N \l__draw_path_arc_start_fp }
               { \fp_eval:n { \l__draw_path_arc_start_fp #3 90 } }
               { 90 } {#2}
@@ -418,7 +418,7 @@
               #3 {#4} {#5}
           }
           {
-            \__draw_path_arc_auxi:ffnnNnn
+            \__draw_path_arc_auxi:eennNnn
               { \fp_to_decimal:N \l__draw_path_arc_start_fp }
               { \fp_eval:n { \l__draw_path_arc_start_fp #3 60 } }
               { 60 } {#2}
@@ -426,7 +426,7 @@
           }
       }
     \__draw_path_mark_corner:
-    \__draw_path_arc_auxi:fnfnNnn
+    \__draw_path_arc_auxi:enenNnn
       { \fp_to_decimal:N \l__draw_path_arc_start_fp }
       {#2}
       { \fp_eval:n { abs( \l__draw_path_arc_start_fp - #2 ) } }
@@ -459,7 +459,7 @@
           }
       }
   }
-\cs_generate_variant:Nn \__draw_path_arc_auxi:nnnnNnn { fnf , ff }
+\cs_generate_variant:Nn \__draw_path_arc_auxi:nnnnNnn { ene , ee }
 \cs_new_protected:Npn \__draw_path_arc_auxii:nnnNnnnn #1#2#3#4#5#6#7#8
   {
     \tl_clear:N \l__draw_path_tmp_tl
@@ -605,7 +605,7 @@
           { \__draw_path_rectangle_rounded:nnnn }
           { \__draw_path_rectangle:nnnn }
       }
-      { \draw_point_transform:n {#1} }
+      {#1}
       {#2}
   }
 \cs_new_protected:Npn \__draw_path_rectangle:nnnn #1#2#3#4
@@ -636,7 +636,7 @@
   {
     \__draw_point_process:nnn
       {
-        \__draw_path_grid_auxi:ffnnnn
+        \__draw_path_grid_auxi:eennnn
           { \dim_eval:n { \dim_abs:n {#1} } }
           { \dim_eval:n { \dim_abs:n {#2} } }
       }
@@ -648,7 +648,7 @@
       { \__draw_path_grid_auxii:nnnnnn {#1} {#2} {#5} {#4} {#3} {#6} }
       { \__draw_path_grid_auxii:nnnnnn {#1} {#2} {#3} {#4} {#5} {#6} }
   }
-\cs_generate_variant:Nn \__draw_path_grid_auxi:nnnnnn { ff }
+\cs_generate_variant:Nn \__draw_path_grid_auxi:nnnnnn { ee }
 \cs_new_protected:Npn \__draw_path_grid_auxii:nnnnnn #1#2#3#4#5#6
   {
     \dim_compare:nNnTF {#4} > {#6}
@@ -657,7 +657,7 @@
   }
 \cs_new_protected:Npn \__draw_path_grid_auxiii:nnnnnn #1#2#3#4#5#6
   {
-    \__draw_path_grid_auxiv:ffnnnnnn
+    \__draw_path_grid_auxiv:eennnnnn
       { \fp_to_dim:n { #1 * trunc(#3/(#1)) } }
       { \fp_to_dim:n { #2 * trunc(#4/(#2)) } }
       {#1} {#2} {#3} {#4} {#5} {#6}
@@ -681,7 +681,7 @@
         \draw_path_lineto:n { #7 , ##1 }
       }
   }
-\cs_generate_variant:Nn \__draw_path_grid_auxiv:nnnnnnnn { ff }
+\cs_generate_variant:Nn \__draw_path_grid_auxiv:nnnnnnnn { ee }
 \bool_new:N \l__draw_path_use_clip_bool
 \bool_new:N \l__draw_path_use_fill_bool
 \bool_new:N \l__draw_path_use_stroke_bool
@@ -702,7 +702,7 @@
         \__draw_path_reset_limits:
       }
       { \__draw_path_use:n { #1 , clear } }
-   }
+  }
 \cs_new_protected:Npn \__draw_path_use:n #1
   {
     \bool_set_false:N \l__draw_path_use_clip_bool
@@ -820,17 +820,18 @@
 %% File: l3draw-points.dtx
 \cs_new:Npn \__draw_point_process:nn #1#2
   {
-    \exp_args:Nf \__draw_point_process_auxi:nn
+    \__draw_point_process_auxi:en
       { \draw_point:n {#2} }
       {#1}
   }
 \cs_new:Npn \__draw_point_process_auxi:nn #1#2
   { \__draw_point_process_auxii:nw {#2} #1 \s__draw_stop }
+\cs_generate_variant:Nn \__draw_point_process_auxi:nn { e }
 \cs_new:Npn \__draw_point_process_auxii:nw #1 #2 , #3 \s__draw_stop
   { #1 {#2} {#3} }
 \cs_new:Npn \__draw_point_process:nnn #1#2#3
   {
-    \exp_args:Nff \__draw_point_process_auxiii:nnn
+    \__draw_point_process_auxiii:een
       { \draw_point:n {#2} }
       { \draw_point:n {#3} }
       {#1}
@@ -837,11 +838,12 @@
   }
 \cs_new:Npn \__draw_point_process_auxiii:nnn #1#2#3
   { \__draw_point_process_auxiv:nw {#3} #1 \s__draw_mark #2 \s__draw_stop }
+\cs_generate_variant:Nn \__draw_point_process_auxiii:nnn { ee }
 \cs_new:Npn \__draw_point_process_auxiv:nw #1 #2 , #3 \s__draw_mark #4 , #5 \s__draw_stop
   { #1 {#2} {#3} {#4} {#5} }
 \cs_new:Npn \__draw_point_process:nnnn #1#2#3#4
   {
-    \exp_args:Nfff \__draw_point_process_auxv:nnnn
+    \__draw_point_process_auxv:eeen
       { \draw_point:n {#2} }
       { \draw_point:n {#3} }
       { \draw_point:n {#4} }
@@ -849,12 +851,13 @@
   }
 \cs_new:Npn \__draw_point_process_auxv:nnnn #1#2#3#4
   { \__draw_point_process_auxvi:nw {#4} #1 \s__draw_mark #2 \s__draw_mark #3 \s__draw_stop }
+\cs_generate_variant:Nn \__draw_point_process_auxv:nnnn { eee }
 \cs_new:Npn \__draw_point_process_auxvi:nw
   #1 #2 , #3 \s__draw_mark #4 , #5 \s__draw_mark #6 , #7 \s__draw_stop
   { #1 {#2} {#3} {#4} {#5} {#6} {#7} }
 \cs_new:Npn \__draw_point_process:nnnnn #1#2#3#4#5
   {
-    \exp_args:Nffff \__draw_point_process_auxvii:nnnnn
+    \__draw_point_process_auxvii:eeeen
       { \draw_point:n {#2} }
       { \draw_point:n {#3} }
       { \draw_point:n {#4} }
@@ -866,27 +869,28 @@
     \__draw_point_process_auxviii:nw
       {#5} #1 \s__draw_mark #2 \s__draw_mark #3 \s__draw_mark #4 \s__draw_stop
   }
+\cs_generate_variant:Nn \__draw_point_process_auxvii:nnnnn { eeee }
 \cs_new:Npn \__draw_point_process_auxviii:nw
   #1 #2 , #3 \s__draw_mark #4 , #5 \s__draw_mark #6 , #7 \s__draw_mark #8 , #9 \s__draw_stop
   { #1 {#2} {#3} {#4} {#5} {#6} {#7} {#8} {#9} }
 \cs_new:Npn \draw_point:n #1
-  { \__draw_point_to_dim:f { \fp_eval:n {#1} } }
+  { \__draw_point_to_dim:e { \fp_eval:n {#1} } }
 \cs_new:Npn \__draw_point_to_dim:n #1
   { \__draw_point_to_dim:w #1 }
-\cs_generate_variant:Nn \__draw_point_to_dim:n { f }
+\cs_generate_variant:Nn \__draw_point_to_dim:n { e }
 \cs_new:Npn \__draw_point_to_dim:w ( #1 , ~ #2 ) { #1pt , #2pt }
 \cs_new:Npn \draw_point_polar:nn #1#2
   { \draw_point_polar:nnn {#1} {#1} {#2} }
 \cs_new:Npn \draw_point_polar:nnn #1#2#3
-  { \__draw_draw_polar:fnn { \fp_eval:n {#3} } {#1} {#2} }
+  { \__draw_draw_polar:enn { \fp_eval:n {#3} } {#1} {#2} }
 \cs_new:Npn \__draw_draw_polar:nnn #1#2#3
   { \draw_point:n { cosd(#1) * (#2) , sind(#1) * (#3) } }
-\cs_generate_variant:Nn \__draw_draw_polar:nnn { f }
+\cs_generate_variant:Nn \__draw_draw_polar:nnn { e }
 \cs_new:Npn \draw_point_unit_vector:n #1
   { \__draw_point_process:nn { \__draw_point_unit_vector:nn } {#1} }
 \cs_new:Npn \__draw_point_unit_vector:nn #1#2
   {
-    \exp_args:Nf \__draw_point_unit_vector:nnn
+    \__draw_point_unit_vector:nnn
       { \fp_eval:n { (sqrt(#1 * #1 + #2 * #2)) } }
       {#1} {#2}
   }
@@ -899,6 +903,7 @@
           { ( #2 , #3 ) / #1 }
       }
   }
+\cs_generate_variant:Nn \__draw_point_unit_vector:nnn { e }
 \cs_new:Npn \draw_point_intersect_lines:nnnn #1#2#3#4
   {
     \__draw_point_process:nnnnn
@@ -907,7 +912,7 @@
   }
 \cs_new:Npn \__draw_point_intersect_lines:nnnnnnnn #1#2#3#4#5#6#7#8
   {
-    \__draw_point_intersect_lines_aux:ffffff
+    \__draw_point_intersect_lines_aux:eeeeee
       { \fp_eval:n { #1 * #4 - #2 * #3 } }
       { \fp_eval:n { #5 * #8 - #6 * #7 } }
       { \fp_eval:n { #1 - #3 } }
@@ -923,7 +928,7 @@
           / ( #4 * #5 - #6 * #3 )
       }
   }
-\cs_generate_variant:Nn \__draw_point_intersect_lines_aux:nnnnnn { ffffff }
+\cs_generate_variant:Nn \__draw_point_intersect_lines_aux:nnnnnn { eeeeee }
 \cs_new:Npn \draw_point_intersect_circles:nnnnn #1#2#3#4#5
   {
     \__draw_point_process:nnn
@@ -932,54 +937,54 @@
   }
 \cs_new:Npn \__draw_point_intersect_circles_auxi:nnnnnnn #1#2#3#4#5#6#7
   {
-    \__draw_point_intersect_circles_auxii:ffnnnnn
+    \__draw_point_intersect_circles_auxii:eennnnn
       { \fp_eval:n {#1} } { \fp_eval:n {#2} } {#4} {#5} {#6} {#7} {#3}
   }
 \cs_new:Npn \__draw_point_intersect_circles_auxii:nnnnnnn #1#2#3#4#5#6#7
   {
-    \__draw_point_intersect_circles_auxiii:ffnnnnn
+    \__draw_point_intersect_circles_auxiii:eennnnn
       { \fp_eval:n { #5 - #3 } }
       { \fp_eval:n { #6 - #4 } }
       {#1} {#2} {#3} {#4} {#7}
   }
-\cs_generate_variant:Nn \__draw_point_intersect_circles_auxii:nnnnnnn { ff }
+\cs_generate_variant:Nn \__draw_point_intersect_circles_auxii:nnnnnnn { ee }
 \cs_new:Npn \__draw_point_intersect_circles_auxiii:nnnnnnn #1#2#3#4#5#6#7
   {
-    \__draw_point_intersect_circles_auxiv:fnnnnnnn
+    \__draw_point_intersect_circles_auxiv:ennnnnnn
       { \fp_eval:n { sqrt( #1 * #1 + #2 * #2 ) } }
       {#1} {#2} {#3} {#4} {#5} {#6} {#7}
   }
-\cs_generate_variant:Nn \__draw_point_intersect_circles_auxiii:nnnnnnn { ff }
+\cs_generate_variant:Nn \__draw_point_intersect_circles_auxiii:nnnnnnn { ee }
 \cs_new:Npn \__draw_point_intersect_circles_auxiv:nnnnnnnn #1#2#3#4#5#6#7#8
   {
-    \__draw_point_intersect_circles_auxv:ffnnnnnnn
+    \__draw_point_intersect_circles_auxv:eennnnnnn
       { \fp_eval:n { 1 / #1 } }
       { \fp_eval:n { #4 * #4 } }
       {#1} {#2} {#3} {#5} {#6} {#7} {#8}
   }
-\cs_generate_variant:Nn \__draw_point_intersect_circles_auxiv:nnnnnnnn { f }
+\cs_generate_variant:Nn \__draw_point_intersect_circles_auxiv:nnnnnnnn { e }
 \cs_new:Npn \__draw_point_intersect_circles_auxv:nnnnnnnnn #1#2#3#4#5#6#7#8#9
   {
-    \__draw_point_intersect_circles_auxvi:fnnnnnnn
+    \__draw_point_intersect_circles_auxvi:ennnnnnn
       { \fp_eval:n { 0.5 * #1 * ( #2 + #3 * #3 - #6 * #6 ) } }
       {#1} {#2} {#4} {#5} {#7} {#8} {#9}
   }
-\cs_generate_variant:Nn \__draw_point_intersect_circles_auxv:nnnnnnnnn { ff }
+\cs_generate_variant:Nn \__draw_point_intersect_circles_auxv:nnnnnnnnn { ee }
 \cs_new:Npn \__draw_point_intersect_circles_auxvi:nnnnnnnn #1#2#3#4#5#6#7#8
   {
-    \__draw_point_intersect_circles_auxvii:fffnnnn
+    \__draw_point_intersect_circles_auxvii:eeennnn
       { \fp_eval:n { #1 * #2 } }
       { \int_if_odd:nTF {#8} { 1 } { -1 } }
       { \fp_eval:n { sqrt ( #3 - #1 * #1 ) * #2 } }
       {#4} {#5} {#6} {#7}
   }
-\cs_generate_variant:Nn \__draw_point_intersect_circles_auxvi:nnnnnnnn { f }
+\cs_generate_variant:Nn \__draw_point_intersect_circles_auxvi:nnnnnnnn { e }
 \cs_new:Npn \__draw_point_intersect_circles_auxvii:nnnnnnn #1#2#3#4#5#6#7
   {
     \draw_point:n
       { #6 + #4 * #1 + #2 * #3 * #5 , #7 + #5 * #1 + -1 * #2 * #3 * #4 }
   }
-\cs_generate_variant:Nn \__draw_point_intersect_circles_auxvii:nnnnnnn { fff }
+\cs_generate_variant:Nn \__draw_point_intersect_circles_auxvii:nnnnnnn { eee }
 \cs_new:Npn \draw_point_intersect_line_circle:nnnnn #1#2#3#4#5
   {
     \__draw_point_process:nnnn
@@ -988,54 +993,54 @@
   }
 \cs_new:Npn \__draw_point_intersect_line_circle_auxi:nnnnnnnn #1#2#3#4#5#6#7#8
   {
-    \__draw_point_intersect_line_circle_auxii:fnnnnnnn
+    \__draw_point_intersect_line_circle_auxii:ennnnnnn
       { \fp_eval:n {#1} } {#3} {#4} {#5} {#6} {#7} {#8} {#2}
   }
 \cs_new:Npn \__draw_point_intersect_line_circle_auxii:nnnnnnnn #1#2#3#4#5#6#7#8
   {
-    \__draw_point_intersect_line_circle_auxiii:fffnnnnn
+    \__draw_point_intersect_line_circle_auxiii:eeennnnn
       { \fp_eval:n { (#4-#2)*(#4-#2)+(#5-#3)*(#5-#3) } }
       { \fp_eval:n { 2*((#4-#2)*(#2-#6)+(#5-#3)*(#3-#7)) } }
       { \fp_eval:n { (#6*#6+#7*#7)+(#2*#2+#3*#3)-(2*(#6*#2+#7*#3))-(#1*#1) } }
       {#2} {#3} {#4} {#5} {#8}
   }
-\cs_generate_variant:Nn \__draw_point_intersect_line_circle_auxii:nnnnnnnn { f }
+\cs_generate_variant:Nn \__draw_point_intersect_line_circle_auxii:nnnnnnnn { e }
 \cs_new:Npn \__draw_point_intersect_line_circle_auxiii:nnnnnnnn #1#2#3#4#5#6#7#8
   {
-    \__draw_point_intersect_line_circle_auxiv:ffnnnnnn
+    \__draw_point_intersect_line_circle_auxiv:eennnnnn
       { \fp_eval:n {  #2 * #2 - 4 * #1 * #3 } }
       { \int_if_odd:nTF {#8} { 1 } { -1 } }
       {#1} {#2} {#4} {#5} {#6} {#7}
   }
-\cs_generate_variant:Nn \__draw_point_intersect_line_circle_auxiii:nnnnnnnn { fff }
+\cs_generate_variant:Nn \__draw_point_intersect_line_circle_auxiii:nnnnnnnn { eee }
 \cs_new:Npn \__draw_point_intersect_line_circle_auxiv:nnnnnnnn #1#2#3#4#5#6#7#8
   {
-    \__draw_point_intersect_line_circle_auxv:fnnnn
+    \__draw_point_intersect_line_circle_auxv:ennnn
       { \fp_eval:n { (-1 * #4 + #2 * sqrt(#1)) / (2 * #3) } }
       {#5} {#6} {#7} {#8}
   }
-\cs_generate_variant:Nn \__draw_point_intersect_line_circle_auxiv:nnnnnnnn { ff }
+\cs_generate_variant:Nn \__draw_point_intersect_line_circle_auxiv:nnnnnnnn { ee }
 \cs_new:Npn \__draw_point_intersect_line_circle_auxv:nnnnn #1#2#3#4#5
   {
     \draw_point:n
       { #2 + #1 * (#4 - #2), #3 + #1 * (#5 - #3) }
   }
-\cs_generate_variant:Nn \__draw_point_intersect_line_circle_auxv:nnnnn { f }
+\cs_generate_variant:Nn \__draw_point_intersect_line_circle_auxv:nnnnn { e }
 \cs_new:Npn \draw_point_interpolate_line:nnn #1#2#3
   {
     \__draw_point_process:nnn
-      { \__draw_point_interpolate_line_aux:fnnnn { \fp_eval:n {#1} } }
+      { \__draw_point_interpolate_line_aux:ennnn { \fp_eval:n {#1} } }
       {#2} {#3}
   }
 \cs_new:Npn \__draw_point_interpolate_line_aux:nnnnn #1#2#3#4#5
   {
-    \__draw_point_interpolate_line_aux:fnnnnn { \fp_eval:n { 1 - #1 } }
+    \__draw_point_interpolate_line_aux:ennnnn { \fp_eval:n { 1 - #1 } }
       {#1} {#2} {#3} {#4} {#5}
   }
-\cs_generate_variant:Nn \__draw_point_interpolate_line_aux:nnnnn { f }
+\cs_generate_variant:Nn \__draw_point_interpolate_line_aux:nnnnn { e }
 \cs_new:Npn \__draw_point_interpolate_line_aux:nnnnnn #1#2#3#4#5#6
   { \draw_point:n { #2 * #3 + #1 * #5 , #2 * #4 + #1 * #6 } }
-\cs_generate_variant:Nn \__draw_point_interpolate_line_aux:nnnnnn { f }
+\cs_generate_variant:Nn \__draw_point_interpolate_line_aux:nnnnnn { e }
 \cs_new:Npn \draw_point_interpolate_distance:nnn #1#2#3
   {
     \__draw_point_process:nn
@@ -1046,7 +1051,7 @@
   {
     \__draw_point_process:nn
       {
-        \__draw_point_interpolate_distance:fnnnn
+        \__draw_point_interpolate_distance:ennnn
           { \fp_eval:n {#1} } {#3} {#4}
       }
       { \draw_point_unit_vector:n { ( #2 ) - ( #3 , #4 ) } }
@@ -1053,7 +1058,7 @@
   }
 \cs_new:Npn \__draw_point_interpolate_distance:nnnnn #1#2#3#4#5
   { \draw_point:n { #2 + #1 * #4 , #3 + #1 * #5 } }
-\cs_generate_variant:Nn \__draw_point_interpolate_distance:nnnnn { f }
+\cs_generate_variant:Nn \__draw_point_interpolate_distance:nnnnn { e }
 \cs_new:Npn \draw_point_interpolate_arcaxes:nnnnnn #1#2#3#4#5#6
   {
     \__draw_point_process:nnnn
@@ -1062,30 +1067,30 @@
   }
 \cs_new:Npn \__draw_point_interpolate_arcaxes_auxi:nnnnnnnnn #1#2#3#4#5#6#7#8#9
   {
-    \__draw_point_interpolate_arcaxes_auxii:fnnnnnnnn
+    \__draw_point_interpolate_arcaxes_auxii:ennnnnnnn
       { \fp_eval:n {#1} } {#2} {#3} {#4} {#5} {#6} {#7} {#8} {#9}
   }
 \cs_new:Npn \__draw_point_interpolate_arcaxes_auxii:nnnnnnnnn #1#2#3#4#5#6#7#8#9
   {
-    \__draw_point_interpolate_arcaxes_auxiii:fnnnnnn
+    \__draw_point_interpolate_arcaxes_auxiii:ennnnnn
       { \fp_eval:n { #1 * (#3) + ( 1 - #1 ) * (#2) } }
       {#4} {#5} {#6} {#7} {#8} {#9}
   }
-\cs_generate_variant:Nn \__draw_point_interpolate_arcaxes_auxii:nnnnnnnnn { f }
+\cs_generate_variant:Nn \__draw_point_interpolate_arcaxes_auxii:nnnnnnnnn { e }
 \cs_new:Npn \__draw_point_interpolate_arcaxes_auxiii:nnnnnnn #1#2#3#4#5#6#7
   {
-    \__draw_point_interpolate_arcaxes_auxiv:ffnnnnnn
+    \__draw_point_interpolate_arcaxes_auxiv:eennnnnn
       { \fp_eval:n { cosd (#1) } }
       { \fp_eval:n { sind (#1) } }
       {#2} {#3} {#4} {#5} {#6} {#7}
   }
-\cs_generate_variant:Nn \__draw_point_interpolate_arcaxes_auxiii:nnnnnnn { f }
+\cs_generate_variant:Nn \__draw_point_interpolate_arcaxes_auxiii:nnnnnnn { e }
 \cs_new:Npn \__draw_point_interpolate_arcaxes_auxiv:nnnnnnnn #1#2#3#4#5#6#7#8
   {
     \draw_point:n
       { #3 + #1 * #5 + #2 * #7 , #4 + #1 * #6 + #2 * #8 }
   }
-\cs_generate_variant:Nn \__draw_point_interpolate_arcaxes_auxiv:nnnnnnnn { ff }
+\cs_generate_variant:Nn \__draw_point_interpolate_arcaxes_auxiv:nnnnnnnn { ee }
 \cs_new:Npn \draw_point_interpolate_curve:nnnnnn #1#2#3#4#5
   {
     \__draw_point_process:nnnnn
@@ -1094,7 +1099,7 @@
   }
 \cs_new:Npn \__draw_point_interpolate_curve_auxi:nnnnnnnnn #1#2#3#4#5#6#7#8#9
   {
-    \__draw_point_interpolate_curve_auxii:fnnnnnnnn
+    \__draw_point_interpolate_curve_auxii:ennnnnnnn
       { \fp_eval:n {#1} }
       {#2} {#3} {#4} {#5} {#6} {#7} {#8} {#9}
   }
@@ -1101,12 +1106,12 @@
 \cs_new:Npn \__draw_point_interpolate_curve_auxii:nnnnnnnnn
   #1#2#3#4#5#6#7#8#9
   {
-    \__draw_point_interpolate_curve_auxiii:fnnnnn
+    \__draw_point_interpolate_curve_auxiii:ennnnn
       { \fp_eval:n { 1 - #1 } }
       {#1}
       { {#2} {#3} } { {#4} {#5} } { {#6} {#7} } { {#8} {#9} }
   }
-\cs_generate_variant:Nn \__draw_point_interpolate_curve_auxii:nnnnnnnnn { f }
+\cs_generate_variant:Nn \__draw_point_interpolate_curve_auxii:nnnnnnnnn { e }
 \cs_new:Npn \__draw_point_interpolate_curve_auxiii:nnnnnn #1#2#3#4#5#6
   {
     \__draw_point_interpolate_curve_auxiv:nnnnnn {#1} {#2} #3 #4
@@ -1115,10 +1120,10 @@
     \prg_do_nothing:
     \__draw_point_interpolate_curve_auxvi:n { {#1} {#2} }
   }
-\cs_generate_variant:Nn \__draw_point_interpolate_curve_auxiii:nnnnnn { f }
+\cs_generate_variant:Nn \__draw_point_interpolate_curve_auxiii:nnnnnn { e }
 \cs_new:Npn \__draw_point_interpolate_curve_auxiv:nnnnnn #1#2#3#4#5#6
   {
-    \__draw_point_interpolate_curve_auxv:ffw
+    \__draw_point_interpolate_curve_auxv:eew
       { \fp_eval:n { #1 * #3 + #2 * #5 } }
       { \fp_eval:n { #1 * #4 + #2 * #6 } }
   }
@@ -1129,12 +1134,12 @@
     \prg_do_nothing:
     #4 { #5 {#1} {#2} }
   }
-\cs_generate_variant:Nn \__draw_point_interpolate_curve_auxv:nnw { ff }
+\cs_generate_variant:Nn \__draw_point_interpolate_curve_auxv:nnw { ee }
 \cs_new:Npn \__draw_point_interpolate_curve_auxvi:n #1
   { \__draw_point_interpolate_curve_auxvii:nnnnnnnn #1 }
 \cs_new:Npn \__draw_point_interpolate_curve_auxvii:nnnnnnnn #1#2#3#4#5#6#7#8
   {
-    \__draw_point_interpolate_curve_auxviii:ffffnn
+    \__draw_point_interpolate_curve_auxviii:eeeenn
       { \fp_eval:n { #1 * #5 + #2 * #3 } }
       { \fp_eval:n { #1 * #6 + #2 * #4 } }
       { \fp_eval:n { #1 * #7 + #2 * #5 } }
@@ -1146,7 +1151,7 @@
     \draw_point:n
       { #5 * #3 + #6 * #1 , #5 * #4 + #6 * #2 }
   }
-\cs_generate_variant:Nn \__draw_point_interpolate_curve_auxviii:nnnnnn { ffff }
+\cs_generate_variant:Nn \__draw_point_interpolate_curve_auxviii:nnnnnn { eeee }
 \dim_new:N \l__draw_xvec_x_dim
 \dim_new:N \l__draw_xvec_y_dim
 \dim_new:N \l__draw_yvec_x_dim
@@ -1172,7 +1177,7 @@
 \draw_yvec:n { 0cm , 1cm }
 \draw_zvec:n { -0.385cm , -0.385cm }
 \cs_new:Npn \draw_point_vec:nn #1#2
-  { \__draw_point_vec:ff { \fp_eval:n {#1} } { \fp_eval:n {#2} } }
+  { \__draw_point_vec:ee { \fp_eval:n {#1} } { \fp_eval:n {#2} } }
 \cs_new:Npn \__draw_point_vec:nn #1#2
   {
     \draw_point:n
@@ -1181,10 +1186,10 @@
         #1 * \l__draw_xvec_y_dim + #2 * \l__draw_yvec_y_dim
       }
   }
-\cs_generate_variant:Nn \__draw_point_vec:nn { ff }
+\cs_generate_variant:Nn \__draw_point_vec:nn { ee }
 \cs_new:Npn \draw_point_vec:nnn #1#2#3
   {
-    \__draw_point_vec:fff
+    \__draw_point_vec:eee
       { \fp_eval:n {#1} } { \fp_eval:n {#2} } { \fp_eval:n {#3} }
   }
 \cs_new:Npn \__draw_point_vec:nnn #1#2#3
@@ -1191,9 +1196,9 @@
   {
     \draw_point:n
       {
-             #1 * \l__draw_xvec_x_dim
-           + #2 * \l__draw_yvec_x_dim
-           + #3 * \l__draw_zvec_x_dim
+            #1 * \l__draw_xvec_x_dim
+          + #2 * \l__draw_yvec_x_dim
+          + #3 * \l__draw_zvec_x_dim
         ,
             #1 * \l__draw_xvec_y_dim
           + #2 * \l__draw_yvec_y_dim
@@ -1200,11 +1205,11 @@
           + #3 * \l__draw_zvec_y_dim
     }
   }
-\cs_generate_variant:Nn \__draw_point_vec:nnn { fff }
+\cs_generate_variant:Nn \__draw_point_vec:nnn { eee }
 \cs_new:Npn \draw_point_vec_polar:nn #1#2
   { \draw_point_vec_polar:nnn {#1} {#1} {#2} }
 \cs_new:Npn \draw_point_vec_polar:nnn #1#2#3
-  { \__draw_draw_vec_polar:fnn { \fp_eval:n {#3} } {#1} {#2} }
+  { \__draw_draw_vec_polar:enn { \fp_eval:n {#3} } {#1} {#2} }
 \cs_new:Npn \__draw_draw_vec_polar:nnn #1#2#3
   {
     \draw_point:n
@@ -1211,9 +1216,9 @@
       {
         cosd(#1) * (#2) * \l__draw_xvec_x_dim ,
         sind(#1) * (#3) * \l__draw_yvec_y_dim
-     }
+      }
   }
-\cs_generate_variant:Nn \__draw_draw_vec_polar:nnn { f }
+\cs_generate_variant:Nn \__draw_draw_vec_polar:nnn { e }
 \cs_new:Npn \draw_point_transform:n #1
   {
     \__draw_point_process:nn
@@ -1358,7 +1363,7 @@
           { 0pt }
       }
     \box_set_ht:Nn \l__draw_main_box
-      { \g__draw_ymax_dim + #1 }
+      { \g__draw_ymax_dim - #1 }
   }
 \bool_new:N \l__draw_baseline_bool
 \dim_new:N \l__draw_baseline_dim
@@ -1440,12 +1445,10 @@
 \cs_generate_variant:Nn \__draw_softpath_add:n { o, e }
 \cs_new_protected:Npn \__draw_softpath_use:
   {
-    \tl_build_gend:N \g__draw_softpath_main_tl
-    \tl_set_eq:NN \l__draw_softpath_tmp_tl \g__draw_softpath_main_tl
+    \tl_build_get_intermediate:NN
+      \g__draw_softpath_main_tl
+      \l__draw_softpath_tmp_tl
     \l__draw_softpath_tmp_tl
-    \tl_build_gbegin:N \g__draw_softpath_main_tl
-    \exp_args:NNV \tl_build_gput_right:Nn
-      \g__draw_softpath_main_tl \l__draw_softpath_tmp_tl
   }
 \cs_new_protected:Npn \__draw_softpath_clear:
   {
@@ -1685,7 +1688,7 @@
     \tl_put_right:Ne \l__draw_softpath_part_tl
       {
         \exp_not:N #4
-        \__draw_softpath_round_calc:fVnnnn
+        \__draw_softpath_round_calc:eVnnnn
           {
             \draw_point_interpolate_distance:nnn
               \l__draw_softpath_corneri_dim
@@ -1707,7 +1710,7 @@
     \__draw_softpath_round_calc:nnnnw {#3} {#4} {#5} {#6}
       #1 \s__draw_mark #2 \s__draw_stop
   }
-\cs_generate_variant:Nn \__draw_softpath_round_calc:nnnnnn { fV }
+\cs_generate_variant:Nn \__draw_softpath_round_calc:nnnnnn { eV }
 \cs_new:Npn \__draw_softpath_round_calc:nnnnw
   #1#2#3#4 #5 , #6 \s__draw_mark #7 , #8 \s__draw_stop
   {
@@ -1853,10 +1856,7 @@
       { \__draw_transform_shift_absolute:nn } {#1}
   }
 \cs_new_protected:Npn \__draw_transform_shift_absolute:nn #1#2
-  {
-    \dim_set:Nn \l__draw_xshift_dim {#1}
-    \dim_set:Nn \l__draw_yshift_dim {#2}
-  }
+  { \__draw_transform_shift:nnnn { 0pt } { 0pt } {#1} {#2} }
 \cs_new_protected:Npn \draw_transform_matrix:nnnn #1#2#3#4
   {
     \use:e
@@ -1886,14 +1886,35 @@
   }
 \cs_new_protected:Npn \__draw_transform_shift:nn #1#2
   {
-    \dim_set:Nn \l__draw_xshift_dim { \l__draw_xshift_dim + #1 }
-    \dim_set:Nn \l__draw_yshift_dim { \l__draw_yshift_dim + #2 }
+    \__draw_transform_shift:nnnn
+      \l__draw_xshift_dim
+      \l__draw_yshift_dim
+      {#1} {#2}
   }
+\cs_new_protected:Npn \__draw_transform_shift:nnnn #1#2#3#4
+  {
+    \dim_set:Nn \l__draw_xshift_dim
+      {
+        \fp_to_dim:n
+          {
+            #1 +
+            ( #3 * \l__draw_matrix_a_fp + #4 * \l__draw_matrix_b_fp )
+          }
+      }
+    \dim_set:Nn \l__draw_yshift_dim
+      {
+        \fp_to_dim:n
+          {
+            #2 +
+            ( #3 * \l__draw_matrix_c_fp + #4 * \l__draw_matrix_d_fp )
+          }
+      }
+  }
 \cs_new_protected:Npn \draw_transform_matrix_invert:
   {
     \bool_if:NT \l__draw_matrix_active_bool
       {
-        \__draw_transform_invert:f
+        \__draw_transform_invert:e
           {
             \fp_eval:n
               {
@@ -1917,7 +1938,7 @@
     \fp_set:Nn \l__draw_matrix_d_fp
       { \l__draw_matrix_a_fp * #1 }
   }
-\cs_generate_variant:Nn \__draw_transform_invert:n { f }
+\cs_generate_variant:Nn \__draw_transform_invert:n { e }
 \cs_new_protected:Npn \draw_transform_shift_invert:
   {
     \dim_set:Nn \l__draw_xshift_dim { -\l__draw_xshift_dim }
@@ -1960,17 +1981,17 @@
 \cs_new_protected:Npn \draw_transform_yslant:n #1
   { \draw_transform_matrix:nnnn { 1 } { #1 } { 0 } { 1 } }
 \cs_new_protected:Npn \draw_transform_rotate:n #1
-  { \__draw_transform_rotate:f { \fp_eval:n {#1} } }
+  { \__draw_transform_rotate:e { \fp_eval:n {#1} } }
 \cs_new_protected:Npn \__draw_transform_rotate:n #1
   {
-    \__draw_transform_rotate:ff
+    \__draw_transform_rotate:ee
       { \fp_eval:n { cosd(#1) } }
       { \fp_eval:n { sind(#1) } }
   }
-\cs_generate_variant:Nn \__draw_transform_rotate:n { f }
+\cs_generate_variant:Nn \__draw_transform_rotate:n { e }
 \cs_new_protected:Npn \__draw_transform_rotate:nn #1#2
   { \draw_transform_matrix:nnnn {#1} {#2} { -#2 } { #1 } }
-\cs_generate_variant:Nn \__draw_transform_rotate:nn { ff }
+\cs_generate_variant:Nn \__draw_transform_rotate:nn { ee }
 %% 
 %%
 %% End of file `l3draw.sty'.

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% l3graphics.dtx  (with options: `package')
 %% 
-%% Copyright (C) 2019-2023 The LaTeX Project
+%% Copyright (C) 2019-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: l3graphics.dtx
-\ProvidesExplPackage{l3graphics}{2023-12-08}{}
+\ProvidesExplPackage{l3graphics}{2024-01-04}{}
   {L3 Experimental graphics inclusion support}
 \dim_new:N \l__graphics_internal_dim
 \ior_new:N \l__graphics_internal_ior
@@ -38,7 +38,7 @@
       { art , bleed , crop , media , trim }
       {
         \tl_set:Ne \l__graphics_pagebox_tl
-           { \l_keys_choice_tl box }
+          { \l_keys_choice_tl box }
       } ,
     pagebox .initial:n =
       crop ,
@@ -203,8 +203,8 @@
             \exp_args:Ne \str_tail:n
               { \str_casefold:V \l__graphics_ext_str }
           }
-       }
-       { \__graphics_include_auxi:e { \l__graphics_type_str } }
+      }
+      { \__graphics_include_auxi:e { \l__graphics_type_str } }
   }
 \cs_new_protected:Npn \__graphics_include_auxi:n #1
   {
@@ -220,7 +220,7 @@
       {
         \tl_set_eq:NN \l__graphics_final_name_str \l__graphics_full_name_str
         \str_set:Ne \l__graphics_full_name_str
-         { \exp_args:NV \__kernel_file_name_quote:n \l__graphics_full_name_str }
+          { \exp_args:NV \__kernel_file_name_quote:n \l__graphics_full_name_str }
         \exp_args:NnV \use:c { __graphics_backend_getbb_ #1 :n }
           \l__graphics_full_name_str
         \seq_gput_right:NV \g__graphics_record_seq \l__graphics_final_name_str
@@ -268,7 +268,7 @@
     \box_set_dp:Nn \l__graphics_internal_box { 0pt }
     \box_set_ht:Nn \l__graphics_internal_box
       { \l__graphics_ury_dim - \l__graphics_lly_dim }
-     \box_set_wd:Nn \l__graphics_internal_box
+    \box_set_wd:Nn \l__graphics_internal_box
       { \l__graphics_urx_dim - \l__graphics_llx_dim }
     \box_use_drop:N \l__graphics_internal_box
   }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% l3opacity.dtx  (with options: `package')
 %% 
-%% Copyright (C) 2021-2023 The LaTeX Project
+%% Copyright (C) 2021-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -20,7 +20,7 @@
 %% 
 %% File: l3opacity.dtx
 \RequirePackage{expl3}
-\ProvidesExplPackage{l3opacity}{2023-12-08}{}
+\ProvidesExplPackage{l3opacity}{2024-01-04}{}
   {L3 Experimental opacity support}
 \cs_new_protected:Npn \opacity_select:n #1
   { \__opacity_select:nN {#1} \__opacity_backend_select:n }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% l3str-format.dtx  (with options: `package')
 %% 
-%% Copyright (C) 2011-2023 The LaTeX Project
+%% Copyright (C) 2011-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -20,7 +20,7 @@
 %% 
 %% File: l3str-format.dtx
 \RequirePackage{expl3}
-\ProvidesExplPackage{l3str-format}{2023-12-08}{}
+\ProvidesExplPackage{l3str-format}{2024-01-04}{}
   {L3 Experimental string formatting}
 \cs_generate_variant:Nn \use:nn { nf }
 \cs_generate_variant:Nn \use:nnn { fnf }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% l3sys-shell.dtx  (with options: `package')
 %% 
-%% Copyright (C) 2018-2023 The LaTeX Project
+%% Copyright (C) 2018-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -20,7 +20,7 @@
 %% 
 %% File: l3sys-shell.dtx
 \RequirePackage{expl3}
-\ProvidesExplPackage{l3sys-shell}{2023-12-08}{}
+\ProvidesExplPackage{l3sys-shell}{2024-01-04}{}
   {L3 Experimental system shell functions}
 \scan_new:N \s__sys_stop
 \quark_new:N \q__sys_nil
@@ -45,7 +45,7 @@
         \token_if_eq_meaning:NNTF #1 /
           { \c_backslash_str }
           {#1}
-         \__sys_path_to_win:N
+        \__sys_path_to_win:N
       }
   }
 \cs_new_protected:Npe \sys_shell_cp:nn #1#2

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% xcoffins.dtx  (with options: `package')
 %% 
-%% Copyright (C) 2010-2023 The LaTeX Project
+%% Copyright (C) 2010-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: xcoffins.dtx
-\ProvidesExplPackage{xcoffins}{2023-12-08}{}
+\ProvidesExplPackage{xcoffins}{2024-01-04}{}
   {L3 Experimental design level coffins}
 \keys_define:nn { coffin }
   {
@@ -132,9 +132,9 @@
   }
 \NewDocumentCommand \TypesetCoffin
   {
-     m
-     > { \SplitArgument { 1 } { , } } O { H , l }
-     > { \SplitArgument { 1 } { , } } D ( ) { 0 pt , 0 pt }
+    m
+    > { \SplitArgument { 1 } { , } } O { H , l }
+    > { \SplitArgument { 1 } { , } } D ( ) { 0 pt , 0 pt }
   }
   { \coffin_typeset:Nnnnn #1 #2 #3 }
 \NewDocumentCommand \RotateCoffin  { m m }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% l3galley.dtx  (with options: `package')
 %% 
-%% Copyright (C) 2010-2023 The LaTeX Project
+%% Copyright (C) 2010-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -32,7 +32,7 @@
       }%
     \endinput
   }
-\ProvidesExplPackage{l3galley}{2023-12-08}{}
+\ProvidesExplPackage{l3galley}{2024-01-04}{}
   {L3 Experimental galley code}
 \int_new:N \l__galley_tmp_int
 \seq_new:N \g__galley_tmpa_seq
@@ -298,27 +298,27 @@
   }
 \cs_new_protected:Npn \__galley_display_penalty:N #1
   {
-     \tl_if_empty:NF #1
-       {
-         \tl_gput_right:Ne \g_galley_restore_running_tl
-           {
-             \int_gset:Nn \exp_not:N \g_galley_penalty_int
-               { \int_use:N \g_galley_penalty_int }
-           }
-         \int_gset:Nn \g_galley_penalty_int {#1}
-       }
+    \tl_if_empty:NF #1
+      {
+        \tl_gput_right:Ne \g_galley_restore_running_tl
+          {
+            \int_gset:Nn \exp_not:N \g_galley_penalty_int
+              { \int_use:N \g_galley_penalty_int }
+          }
+        \int_gset:Nn \g_galley_penalty_int {#1}
+      }
   }
 \cs_new_protected:Npn \__galley_display_vspace:N #1
   {
-     \tl_if_empty:NF #1
-       {
-         \tl_gput_right:Ne \g_galley_restore_running_tl
-           {
-             \skip_gset:Nn \exp_not:N \g_galley_vspace_skip
-               { \skip_use:N \g_galley_vspace_skip }
-           }
-         \skip_gset:Nn \g_galley_vspace_int {#1}
-       }
+    \tl_if_empty:NF #1
+      {
+        \tl_gput_right:Ne \g_galley_restore_running_tl
+          {
+            \skip_gset:Nn \exp_not:N \g_galley_vspace_skip
+              { \skip_use:N \g_galley_vspace_skip }
+          }
+        \skip_gset:Nn \g_galley_vspace_int {#1}
+      }
   }
 \cs_new_protected:Npn \galley_display_end:
   {
@@ -605,7 +605,7 @@
         \seq_get_right:NNF \g__galley_tmpb_seq \l__galley_tmp_tl
           { \tl_clear:N \l__galley_tmp_tl }
         \tl_if_empty:NT \l__galley_tmp_tl
-         { \tl_set:Nn \l__galley_tmp_tl { 0pt } }
+          { \tl_set:Nn \l__galley_tmp_tl { 0pt } }
         \int_set:Nn \l__galley_tmp_int
           {
               \seq_count:N \g__galley_tmpa_seq

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% xgalley.dtx  (with options: `package')
 %% 
-%% Copyright (C) 2010-2023 The LaTeX Project
+%% Copyright (C) 2010-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: xgalley.dtx
-\ProvidesExplPackage{xgalley}{2023-12-08}{}
+\ProvidesExplPackage{xgalley}{2024-01-04}{}
   {L3 Experimental galley}
 \RequirePackage{xtemplate,l3galley}
 \clist_new:N \l__galley_tmpa_clist
@@ -63,7 +63,7 @@
     lines        : integer = 1
   }
 \DeclareTemplateInterface { parshape } { initial } { 0 }
- {
+  {
     indent       : length  = 0pt  ,
     on-left-side : boolean = true ,
     lines        : integer = 2

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex	2024-01-05 21:44:47 UTC (rev 69310)
@@ -63,7 +63,7 @@
 %% l3legacy.dtx  (with options: `package')
 %% l3deprecation.dtx  (with options: `package')
 %% 
-%% Copyright (C) 1990-2023 The LaTeX Project
+%% Copyright (C) 1990-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -76,7 +76,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2023-12-11}%
+\def\ExplFileDate{2024-01-04}%
 \begingroup
   \def\next{\endgroup}%
   \expandafter\ifx\csname PackageError\endcsname\relax
@@ -1174,7 +1174,7 @@
   \__kernel_primitive:NN \Umathoverbarrule      \tex_Umathoverbarrule:D
   \__kernel_primitive:NN \Umathoverbarvgap      \tex_Umathoverbarvgap:D
   \__kernel_primitive:NN \Umathoverdelimiterbgap
-     \tex_Umathoverdelimiterbgap:D
+    \tex_Umathoverdelimiterbgap:D
   \__kernel_primitive:NN \Umathoverdelimitervgap
     \tex_Umathoverdelimitervgap:D
   \__kernel_primitive:NN \Umathpunctbinspacing  \tex_Umathpunctbinspacing:D
@@ -1565,7 +1565,6 @@
 \cs_set:Npn \use_i:nnn    #1#2#3 {#1}
 \cs_set:Npn \use_ii:nnn   #1#2#3 {#2}
 \cs_set:Npn \use_iii:nnn  #1#2#3 {#3}
-\cs_set:Npn \use_i_ii:nnn #1#2#3 {#1#2}
 \cs_set:Npn \use_i:nnnn   #1#2#3#4 {#1}
 \cs_set:Npn \use_ii:nnnn  #1#2#3#4 {#2}
 \cs_set:Npn \use_iii:nnnn #1#2#3#4 {#3}
@@ -1605,6 +1604,7 @@
 \cs_set:Npn \use_vii:nnnnnnnnn  #1#2#3#4#5#6#7#8#9 {#7}
 \cs_set:Npn \use_viii:nnnnnnnnn #1#2#3#4#5#6#7#8#9 {#8}
 \cs_set:Npn \use_ix:nnnnnnnnn   #1#2#3#4#5#6#7#8#9 {#9}
+\cs_set:Npn \use_i_ii:nnn #1#2#3 {#1#2}
 \cs_set:Npn \use_ii_i:nn #1#2 { #2 #1 }
 \cs_set:Npn \use_none_delimit_by_q_nil:w  #1 \q_nil  { }
 \cs_set:Npn \use_none_delimit_by_q_stop:w #1 \q_stop { }
@@ -1984,9 +1984,9 @@
 \cs_set:Npn \__cs_tmp:w #1#2
   {
     \cs_set_protected:Npn #1 ##1
-       {
-         \__kernel_chk_if_free_cs:N ##1
-         #2 ##1
+      {
+        \__kernel_chk_if_free_cs:N ##1
+        #2 ##1
       }
   }
 \__cs_tmp:w \cs_new_nopar:Npn           \cs_gset_nopar:Npn
@@ -2653,7 +2653,7 @@
 \cs_new:Npn \exp_last_two_unbraced:Noo #1#2#3
   { \exp_after:wN \__exp_last_two_unbraced:noN \exp_after:wN {#3} {#2} #1 }
 \cs_new:Npn \__exp_last_two_unbraced:noN #1#2#3
-   { \exp_after:wN #3 #2 #1 }
+  { \exp_after:wN #3 #2 #1 }
 \cs_new_eq:NN \__kernel_exp_not:w \tex_unexpanded:D
 \cs_new:Npn \exp_not:c #1 { \exp_after:wN \exp_not:N \cs:w #1 \cs_end: }
 \cs_new:Npn \exp_not:o #1 { \__kernel_exp_not:w \exp_after:wN {#1} }
@@ -3840,7 +3840,7 @@
     \else:
       \prg_return_false:
     \fi:
- }
+  }
 \exp_args:Nno \use:n
   { \prg_new_conditional:Npnn \tl_if_blank:n #1 { p , T , F , TF } }
   {
@@ -4646,6 +4646,8 @@
     #2 #1
     \exp_args:Nc \__tl_build_end_loop:NN { \cs_to_str:N #1 ' } #2
   }
+\cs_new_protected:Npn \tl_build_get_intermediate:NN
+  { \__tl_build_get:NNN \__kernel_tl_set:Ne }
 \cs_new_protected:Npn \__tl_build_get:NNN #1#2#3
   { #1 #3 { \if_false: { \fi: \exp_after:wN \__tl_build_get:w #2 } } }
 \cs_new:Npn \__tl_build_get:w #1 \__tl_build_last:NNn #2#3#4
@@ -5321,9 +5323,9 @@
         \int_compare:nNnTF {`#2} < { "E0 }
           { \__str_change_case_codepoint:nNN }
           {
-             \int_compare:nNnTF {`#2} < { "F0 }
-               { \__str_change_case_codepoint:nNNN }
-               { \__str_change_case_codepoint:nNNNNN }
+            \int_compare:nNnTF {`#2} < { "F0 }
+              { \__str_change_case_codepoint:nNNN }
+              { \__str_change_case_codepoint:nNNNNN }
           }
             {#1} #2
       }
@@ -5383,7 +5385,7 @@
           {
             \codepoint_str_generate:n {#2}
             \tl_if_blank:nF {#3}
-             { \codepoint_str_generate:n {#3} }
+              { \codepoint_str_generate:n {#3} }
           }
       }
   }
@@ -5607,10 +5609,10 @@
             \if_false: { \fi: }
             \tl_set:Nn \l__seq_internal_b_tl {##1}
             #1 #2
-               { \if_false: } \fi:
-                 \exp_not:o {#2}
-                 \tl_if_eq:NNT \l__seq_internal_a_tl \l__seq_internal_b_tl
-                   { \use_none:nn }
+              { \if_false: } \fi:
+                \exp_not:o {#2}
+                \tl_if_eq:NNT \l__seq_internal_a_tl \l__seq_internal_b_tl
+                  { \use_none:nn }
           }
         \__seq_wrap_item:n {##1}
       }
@@ -7867,7 +7869,7 @@
         \sys_if_engine_xetex:TF
           { xetex }
           {
-             \sys_if_output_pdf:TF
+            \sys_if_output_pdf:TF
               {
                 \sys_if_engine_pdftex:TF
                   { pdftex }
@@ -7874,7 +7876,7 @@
                   { luatex }
               }
               { dvips }
-           }
+          }
       }
   }
 \__sys_finalise:n
@@ -9869,9 +9871,9 @@
           { \use:c { \c__msg_text_prefix_tl #2 / #3 } #4 }
           { \c__msg_continue_text_tl }
           {
-             \c__msg_no_info_text_tl
-             \tl_if_empty:NF #5
-               { \\ \\ #5 }
+            \c__msg_no_info_text_tl
+            \tl_if_empty:NF #5
+              { \\ \\ #5 }
           }
       }
       {
@@ -9879,9 +9881,9 @@
           { \use:c { \c__msg_text_prefix_tl #2 / #3 } #4 }
           { \c__msg_help_text_tl }
           {
-             \use:c { \c__msg_more_text_prefix_tl #2 / #3 } #4
-             \tl_if_empty:NF #5
-               { \\ \\ #5 }
+            \use:c { \c__msg_more_text_prefix_tl #2 / #3 } #4
+            \tl_if_empty:NF #5
+              { \\ \\ #5 }
           }
       }
   }
@@ -10023,7 +10025,7 @@
         { nnVV , nnVn , nnnV , nnne , nnnx , nnee , nnxx }
       \cs_generate_variant:cn { msg_ #1 :nnnnn }
         { nnnee , nnnxx , nneee , nnxxx }
-       \cs_generate_variant:cn { msg_ #1 :nnnnnn } { nneeee , nnxxxx }
+      \cs_generate_variant:cn { msg_ #1 :nnnnnn } { nneeee , nnxxxx }
     }
   \__msg_class_new:nn { fatal }
     {
@@ -10069,14 +10071,14 @@
         {
           ( \l__msg_name_str )
           \prg_replicate:nn
-             {
-                 \str_count:N \l__msg_text_str
-               - \str_count:N \l__msg_name_str
-             }
+            {
+                \str_count:N \l__msg_text_str
+              - \str_count:N \l__msg_name_str
+            }
             { ~ }
-         }
-         { } #1
-       #1 { }
+        }
+        { } #1
+      #1 { }
     }
   \__msg_class_new:nn { warning }
     {
@@ -10390,7 +10392,7 @@
     \msg_new:nnnn { kernel } { no-elapsed-time }
       { No~clock~detected~for~#1. }
       { The~current~engine~provides~no~way~to~access~the~system~time. }
-   }
+  }
 \msg_new:nnnn { kernel } { non-base-function }
   { Function~'#1'~is~not~a~base~function }
   {
@@ -11193,12 +11195,12 @@
       \__kernel_tl_set:Ne \l__iow_newline_tl { \tl_to_str:N \l__iow_newline_tl }
       \int_set:Nn \l__iow_line_target_int
         { \l_iow_line_count_int - \str_count:N \l__iow_newline_tl + 1 }
-       \int_compare:nNnT { \l__iow_line_target_int } < 0
-         {
-           \tl_set:Nn \l__iow_newline_tl { \iow_newline: }
-           \int_set:Nn \l__iow_line_target_int
-             { \l_iow_line_count_int + 1 }
-         }
+      \int_compare:nNnT { \l__iow_line_target_int } < 0
+        {
+          \tl_set:Nn \l__iow_newline_tl { \iow_newline: }
+          \int_set:Nn \l__iow_line_target_int
+            { \l_iow_line_count_int + 1 }
+        }
       \__iow_wrap_do:
     \exp_args:NNf \group_end:
     #4 { \tl_to_str:N \l__iow_wrap_tl }
@@ -11871,7 +11873,7 @@
       { \file_full_name:n {#1} }
       { \file_full_name:n {#3} }
       #2
-   }
+  }
 \prg_generate_conditional_variant:Nnn \file_compare_timestamp:nNn
   { nNV , V , VNV } { p , T , F , TF }
 \cs_new:Npn \__file_compare_timestamp:nnN #1#2#3
@@ -11887,11 +11889,11 @@
       {
         \tl_if_blank:nTF {#2}
           {
-             \if_charcode:w #3 >
-                \prg_return_true:
-              \else:
-                \prg_return_false:
-              \fi:
+            \if_charcode:w #3 >
+              \prg_return_true:
+            \else:
+              \prg_return_false:
+            \fi:
           }
           {
             \if_int_compare:w
@@ -12132,8 +12134,8 @@
       {
         \exp_args:NV \__file_kernel_dependency_compare:nnn
           \c__kernel_expl_date_tl {#1}
-       }
-       { \__file_kernel_dependency_compare:nnn { 0000-00-00 } {#1} }
+      }
+      { \__file_kernel_dependency_compare:nnn { 0000-00-00 } {#1} }
   }
 \cs_new_protected:Npn \__file_kernel_dependency_compare:nnn #1 #2 #3
   {
@@ -12742,8 +12744,8 @@
 \prg_new_conditional:Npnn \skip_if_eq:nn #1#2 { p , T , F , TF }
   {
     \str_if_eq:eeTF { \skip_eval:n {#1} } { \skip_eval:n {#2} }
-       { \prg_return_true: }
-       { \prg_return_false: }
+      { \prg_return_true: }
+      { \prg_return_false: }
   }
 \cs_set_protected:Npn \__skip_tmp:w #1
   {
@@ -12950,9 +12952,9 @@
         }
       \cs_new:Npn \__keyval_misplaced_equal_after_active_error:w
           \s__keyval_mark ##1 \s__keyval_stop \s__keyval_mark ##2 \s__keyval_nil
-           = \s__keyval_mark \__keyval_split_active_auxii:w
-           \s__keyval_mark ##3 \s__keyval_nil
-           #2 \s__keyval_mark \__keyval_clean_up_active:w
+          = \s__keyval_mark \__keyval_split_active_auxii:w
+          \s__keyval_mark ##3 \s__keyval_nil
+          #2 \s__keyval_mark \__keyval_clean_up_active:w
         {
           \msg_expandable_error:nn
             { keyval } { misplaced-equals-sign }
@@ -13149,12 +13151,11 @@
   }
 \cs_new_protected:Npn \__keys_property_find:n #1
   {
-    \cs_set_nopar:Npe \l__keys_property_str { \__keys_trim_spaces:n { #1 } }
-    \exp_after:wN \__keys_property_find_auxi:w \l__keys_property_str
+    \exp_after:wN \__keys_property_find_auxi:w \tl_to_str:n {#1}
       \s__keys_nil \__keys_property_find_auxii:w
       . \s__keys_nil \__keys_property_find_err:w
   }
-\cs_new_protected:Npn \__keys_property_find_auxi:w #1 . #2 \s__keys_nil #3
+\cs_new:Npn \__keys_property_find_auxi:w #1 . #2 \s__keys_nil #3
   {
     #3 #1 \s__keys_mark #2 \s__keys_nil #3
   }
@@ -13163,22 +13164,24 @@
     \__keys_property_find_err:w
   {
     \cs_set_nopar:Npe \l_keys_path_str
-      { \str_if_empty:NF \l__keys_module_str { \l__keys_module_str / } #1 }
-    \__keys_property_find_auxi:w #2 \s__keys_nil \__keys_property_find_auxiii:w . \s__keys_nil
-      \__keys_property_find_auxiv:w
+      {
+        \str_if_empty:NF \l__keys_module_str { \l__keys_module_str / }
+        \exp_after:wN \__keys_trim_spaces:n \tex_expanded:D {{
+        #1
+        \if_false: }}} \fi:
+        \__keys_property_find_auxi:w #2 \s__keys_nil \__keys_property_find_auxiii:w
+          . \s__keys_nil \__keys_property_find_auxiv:w
   }
-\cs_new_protected:Npn \__keys_property_find_auxiii:w #1 \s__keys_mark
+\cs_new:Npn \__keys_property_find_auxiii:w #1 \s__keys_mark #2 . #3 \s__keys_nil #4
   {
-    \cs_set_nopar:Npe \l_keys_path_str { \l_keys_path_str . #1 }
-    \__keys_property_find_auxi:w
+    . #1 #4 #2 \s__keys_mark #3 \s__keys_nil #4
   }
-\cs_new_protected:Npn \__keys_property_find_auxiv:w
+\cs_new:Npn \__keys_property_find_auxiv:w
     #1 \s__keys_nil \__keys_property_find_auxiii:w
     \s__keys_mark \s__keys_nil \__keys_property_find_auxiv:w
   {
+    \if_false: {{{ \fi: }}}
     \cs_set_nopar:Npe \l__keys_property_str { . #1 }
-    \cs_set_nopar:Npe \l_keys_path_str
-      { \exp_after:wN \__keys_trim_spaces:n \exp_after:wN { \l_keys_path_str } }
     \tl_set_eq:NN \l_keys_path_tl \l_keys_path_str
   }
 \cs_new_protected:Npn \__keys_property_find_err:w
@@ -13365,8 +13368,8 @@
     \__keys_default_set:n { true }
     \cs_if_exist:cF { if#1 }
       {
-         \cs:w newif \exp_after:wN \cs_end:
-           \cs:w if#1 \cs_end:
+        \cs:w newif \exp_after:wN \cs_end:
+          \cs:w if#1 \cs_end:
       }
   }
 \cs_new_protected:Npn \__keys_meta_make:n #1
@@ -14021,8 +14024,20 @@
       {
         \cs_if_exist:cTF
           { \c__keys_code_root_str \l__keys_module_str / unknown }
-          { \__keys_execute:no { \l__keys_module_str / unknown } \l_keys_value_tl }
           {
+            \bool_if:NT \l__keys_no_value_bool
+              {
+                \cs_if_exist:cT
+                  { \c__keys_default_root_str \l__keys_module_str / unknown }
+                  {
+                    \tl_set_eq:Nc
+                      \l_keys_value_tl
+                      { \c__keys_default_root_str \l__keys_module_str / unknown }
+                  }
+              }
+            \__keys_execute:no { \l__keys_module_str / unknown } \l_keys_value_tl
+          }
+          {
             \msg_error:nnee { keys } { unknown }
               \l_keys_path_str \l__keys_module_str
           }
@@ -14818,7 +14833,7 @@
     #2#3#4; {#5} ;
   }
 \cs_new:Npn \__fp_basics_pack_weird_high:NNNNNNNNw
-   1 #1#2#3#4 #5#6#7#8 #9; { ; {#1#2#3#4} {#5#6#7#8} {#9} }
+  1 #1#2#3#4 #5#6#7#8 #9; { ; {#1#2#3#4} {#5#6#7#8} {#9} }
 \cs_new:Npn \__fp_decimate:nNnnnn #1
   {
     \cs:w
@@ -20624,10 +20639,10 @@
 \cs_new:Npn \__fp_randint_auxiv_o:ww #1#2#3#4#5 ; #6#7#8#9
   {
     \if_int_compare:w
-        \if_int_compare:w #1#2 > #6#7 \exp_stop_f: 1 \else:
+      \if_int_compare:w #1#2 > #6#7 \exp_stop_f: 1 \else:
         \if_int_compare:w #1#2 < #6#7 \exp_stop_f: - \fi: \fi:
-        #3#4 > #8#9 \exp_stop_f:
-     \__fp_use_i_until_s:nw
+      #3#4 > #8#9 \exp_stop_f:
+      \__fp_use_i_until_s:nw
     \fi:
     \__fp_randint_auxv_o:w {#1}{#2}{#3}{#4}#5
   }
@@ -20723,8 +20738,8 @@
     \exp_after:wN \__fp_randint_wide_auxii:w
     \int_value:w \__fp_int_eval:w #5 * #3 + #6 * #1 +
       (#5 * #4 + #6 * #3 + #7 * #1 +
-       (#5 * #2 +           #7 * #3 +
-        (16384 * #6 + #7) * (16384 * #4 + #2) / 268435456) / 16384
+        (#5 * #2 +           #7 * #3 +
+          (16384 * #6 + #7) * (16384 * #4 + #2) / 268435456) / 16384
       ) / 16384 \exp_after:wN ;
     \int_value:w \__fp_int_eval:w (#5 + #6) * 16384 + #7 ;
     #1 ; #5 ;
@@ -21476,6 +21491,11 @@
 \cs_new:Npn \__fp_array_item_normal:w #1 #2#3#4#5 #6 ; #7 ; #8 ; #9
   { #9 \s__fp \__fp_chk:w 1 #1 {#8} #7 {#2#3#4#5} {#6} ; }
 %% File: l3bitset.dtx
+\cs_if_exist:NT \@expl at finalise@setup@@
+  {
+    \tl_gput_right:Nn \@expl at finalise@setup@@
+      { \declare at file@substitution { l3bitset.sty } { null.tex } }
+  }
 \cs_new_protected:Npn \bitset_new:N #1
   {
     \__kernel_chk_if_free_cs:N #1
@@ -21482,7 +21502,6 @@
     \cs_gset_eq:NN #1 \c_zero_str
     \prop_new:c { g__bitset_ \cs_to_str:N #1 _name_prop }
   }
-
 \cs_new_protected:Npn \bitset_new:Nn #1 #2
   {
     \__kernel_chk_if_free_cs:N #1
@@ -21489,21 +21508,15 @@
     \cs_gset_eq:NN #1 \c_zero_str
     \prop_new:c { g__bitset_ \cs_to_str:N #1 _name_prop }
     \prop_gset_from_keyval:cn
-       { g__bitset_ \cs_to_str:N #1 _name_prop }
-       {#2}
+      { g__bitset_ \cs_to_str:N #1 _name_prop }
+      {#2}
   }
 \cs_generate_variant:Nn \bitset_new:N { c }
-\prop_new:N \l__bitset_tmp_prop
+\cs_generate_variant:Nn \bitset_new:Nn { c }
 \cs_new_protected:Npn \bitset_addto_named_index:Nn #1#2
   {
-     \prop_set_from_keyval:Nn \l__bitset_tmp_prop {#2}
-     \prop_map_inline:Nn \l__bitset_tmp_prop
-       {
-         \prop_gput:cnn
-           { g__bitset_ \cs_to_str:N #1 _name_prop }
-           {##1}
-           {##2}
-       }
+    \prop_gput_from_keyval:cn
+      { g__bitset_ \cs_to_str:N #1 _name_prop } { #2 }
   }
 \prg_new_eq_conditional:NNn
   \bitset_if_exist:N \str_if_exist:N { p , T , F , TF }
@@ -21531,12 +21544,12 @@
               }
           }
           {
-             #1 #2
+            #1 #2
               {
                 \str_range:Nnn #2 { 1 } { -1 - (#3) }
                 #4
                 \str_range:Nnn #2 { 1 - (#3) } { -1 }
-             }
+              }
           }
       }
   }
@@ -21609,13 +21622,11 @@
         #1 \q_recursion_tail \q_recursion_stop
       }
   }
-
 \cs_new:Npn \__bitset_to_int:nN #1#2
   {
     \quark_if_recursion_tail_stop_do:Nn #2 {#1}
     \exp_args:Nf \__bitset_to_int:nN { \fp_eval:n { #1 * 2 + #2 } }
   }
-
 \cs_new:Npn \bitset_to_bin:N #1
   {
     #1
@@ -21632,10 +21643,10 @@
               { 0 - ( \prop_item:cn { g__bitset_ \cs_to_str:N #1 _name_prop } {#2} ) }
             +0
           }
-     }
-     {
-       0
-     }
+      }
+      {
+        0
+      }
   }
 \cs_generate_variant:Nn \bitset_item:Nn { c }
 \cs_new_protected:Npn   \bitset_show:N { \__bitset_show:NN \msg_show:nneeee }
@@ -21642,31 +21653,34 @@
 \cs_generate_variant:Nn \bitset_show:N { c }
 \cs_new_protected:Npn   \bitset_log:N  { \__bitset_show:NN \msg_log:nneeee }
 \cs_generate_variant:Nn \bitset_log:N  { c }
-\cs_new_protected:Npn   \bitset_show_named_index:N { \__bitset_show_named_index:NN \msg_show:nneeee }
-\cs_generate_variant:Nn \bitset_show_named_index:N { c }
 \cs_new_protected:Npn \__bitset_show:NN #1#2
   {
     \__kernel_chk_defined:NT #2
       {
         #1 { bitset } { show }
-           { \token_to_str:N #2 }
-           { \bitset_to_bin:N #2 }
-           { \bitset_to_arabic:N #2 }
-           { }
+          { \token_to_str:N #2 }
+          { \bitset_to_bin:N #2 }
+          { \bitset_to_arabic:N #2 }
+          { }
       }
   }
+\cs_new_protected:Npn \bitset_show_named_index:N
+  { \__bitset_show_named_index:NN \msg_show:nneeee }
+\cs_generate_variant:Nn \bitset_show_named_index:N { c }
+\cs_new_protected:Npn \bitset_log_named_index:N
+  { \__bitset_show_named_index:NN \msg_log:nneeee }
+\cs_generate_variant:Nn \bitset_log_named_index:N { c }
 \cs_new_protected:Npn \__bitset_show_named_index:NN #1#2
   {
     \__kernel_chk_defined:NT #2
       {
         #1 { bitset } { show-names }
-           { \token_to_str:N #2 }
-           { \prop_map_function:cN { g__bitset_ \cs_to_str:N #2 _name_prop }  \msg_show_item:nn  }
-           { }
-           { }
+          { \token_to_str:N #2 }
+          { \prop_map_function:cN { g__bitset_ \cs_to_str:N #2 _name_prop } \msg_show_item:nn }
+          { } { }
       }
   }
- \msg_new:nnn { bitset } { show }
+\msg_new:nnn { bitset } { show }
   {
     The~bitset~#1~has~the~representation: \\
     >~binary:~#2  \\
@@ -22591,14 +22605,14 @@
   }
 \group_begin:
   \__kernel_tl_set:Ne \l__str_internal_tl { \tl_to_str:n { 0123456789ABCDEF } }
-   \tl_map_inline:Nn \l__str_internal_tl
-     {
-        \tl_map_inline:Nn \l__str_internal_tl
-          {
-            \tl_const:ce { c__str_byte_ \int_eval:n {"#1##1} _tl }
-               { \char_generate:nn { "#1##1 } { 12 } #1 ##1 }
-          }
-     }
+  \tl_map_inline:Nn \l__str_internal_tl
+    {
+      \tl_map_inline:Nn \l__str_internal_tl
+        {
+          \tl_const:ce { c__str_byte_ \int_eval:n {"#1##1} _tl }
+            { \char_generate:nn { "#1##1 } { 12 } #1 ##1 }
+        }
+    }
 \group_end:
 \tl_const:cn { c__str_byte_-1_tl } { { } \use_none:n { } }
 \cs_new:Npn \__str_output_byte:n #1
@@ -24666,7 +24680,7 @@
 \cs_new:Npn \__regex_use_none_delimit_by_q_nil:w #1 \q__regex_nil { }
 \__kernel_quark_new_conditional:Nn \__regex_quark_if_nil:N { F }
 \cs_new_protected:Npn \__regex_break_true:w
-   #1 \__regex_break_point:TF #2 #3 {#2}
+  #1 \__regex_break_point:TF #2 #3 {#2}
 \cs_new_protected:Npn \__regex_break_point:TF #1 #2 { #2 }
 \cs_new_protected:Npn \__regex_item_reverse:n #1
   {
@@ -26939,7 +26953,7 @@
     \int_set:Nn \l__regex_curr_pos_int
       { \l__regex_start_pos_int - 1 }
     \int_set_eq:NN \l__regex_curr_char_int \l__regex_last_char_success_int
-    \tl_build_get:NN \l__regex_matched_analysis_tl \l__regex_internal_a_tl
+    \tl_build_get_intermediate:NN \l__regex_matched_analysis_tl \l__regex_internal_a_tl
     \exp_args:NNf \__regex_match_once_init_aux:
     \tl_map_inline:nn
       { \exp_after:wN \l__regex_internal_a_tl \l__regex_curr_analysis_tl }
@@ -28563,7 +28577,7 @@
 \cs_new_protected:Npn \__regex_trace_push:nnN #1#2#3
   { \__regex_trace:nne {#1} {#2} { entering~ \token_to_str:N #3 } }
 \cs_new_protected:Npn \__regex_trace_pop:nnN #1#2#3
-   { \__regex_trace:nne {#1} {#2} { leaving~ \token_to_str:N #3 } }
+  { \__regex_trace:nne {#1} {#2} { leaving~ \token_to_str:N #3 } }
 \cs_new_protected:Npn \__regex_trace:nne #1#2#3
   {
     \int_compare:nNnF
@@ -28792,10 +28806,10 @@
 \cs_generate_variant:Nn \hbox_set_to_wd:Nnw  { c }
 \cs_generate_variant:Nn \hbox_gset_to_wd:Nnw { c }
 \cs_new_protected:Npn \hbox_to_wd:nn #1#2
-   {
-     \tex_hbox:D to \__box_dim_eval:n {#1}
-       { \color_group_begin: #2 \color_group_end: }
-   }
+  {
+    \tex_hbox:D to \__box_dim_eval:n {#1}
+      { \color_group_begin: #2 \color_group_end: }
+  }
 \cs_new_protected:Npn \hbox_to_zero:n #1
   {
     \tex_hbox:D to \c_zero_dim
@@ -29461,9 +29475,9 @@
 \cs_new:Npn \__color_convert_rgb_cmyk:w #1 ~ #2 ~ #3 \s__color_stop
   {
     \exp_args:Neee \__color_convert_rgb_cmyk:nnn
-       { \fp_eval:n { 1 - #1 } }
-       { \fp_eval:n { 1 - #2 } }
-       { \fp_eval:n { 1 - #3 } }
+      { \fp_eval:n { 1 - #1 } }
+      { \fp_eval:n { 1 - #2 } }
+      { \fp_eval:n { 1 - #3 } }
   }
 \cs_new:Npn \__color_convert_rgb_cmyk:nnn #1#2#3
   {
@@ -29511,9 +29525,9 @@
 \cs_new_protected:Npn \__color_parse_set_eq:Nn #1#2
   {
     \tl_if_empty:NTF \l_color_fixed_model_tl
-       { \exp_args:Nv \__color_parse_set_eq:nNn { l__color_named_ #2 _tl } }
-       { \exp_args:NV \__color_parse_set_eq:nNn \l_color_fixed_model_tl }
-         #1 {#2}
+      { \exp_args:Nv \__color_parse_set_eq:nNn { l__color_named_ #2 _tl } }
+      { \exp_args:NV \__color_parse_set_eq:nNn \l_color_fixed_model_tl }
+        #1 {#2}
   }
 \cs_new_protected:Npn \__color_parse_set_eq:nNn #1#2#3
   {
@@ -29525,8 +29539,8 @@
         \tl_set_eq:Nc \l__color_model_tl { l__color_named_ #3 _tl }
         \prop_get:cVN { l__color_named_ #3 _prop } \l__color_model_tl
           \l__color_value_tl
-         \__color_convert:nnN
-           \l__color_model_tl {#1} \l__color_value_tl
+        \__color_convert:nnN
+          \l__color_model_tl {#1} \l__color_value_tl
         \tl_set:Ne #2
           {
             {#1}
@@ -29722,11 +29736,11 @@
     \use:e
       {
         \exp_not:N \__color_parse_model_hsb_aux:nnnnn
-         { \__color_parse_number:n {#4} }
-         { \fp_eval:n { round(#4 * (1 - #3) ,5) } }
-         { \fp_eval:n { round(#4 * ( 1 - #3 * #2 ) ,5) } }
-         { \fp_eval:n { round(#4 * ( 1 - #3 * (1 - #2) ) ,5) } }
-         {#1}
+          { \__color_parse_number:n {#4} }
+          { \fp_eval:n { round(#4 * (1 - #3) ,5) } }
+          { \fp_eval:n { round(#4 * ( 1 - #3 * #2 ) ,5) } }
+          { \fp_eval:n { round(#4 * ( 1 - #3 * (1 - #2) ) ,5) } }
+          {#1}
       }
   }
 \cs_new:Npn \__color_parse_model_hsb_aux:nnnnn #1#2#3#4#5
@@ -30420,10 +30434,10 @@
     \tl_const:cn { c__color_fallback_ #1 _tl } { cmyk }
     \cs_new:cpn { __color_convert_ #1 _cmyk:w } ##1 \s__color_stop
       {
-         \fp_eval:n {##1 * #3} ~
-         \fp_eval:n {##1 * #4} ~
-         \fp_eval:n {##1 * #5} ~
-         \fp_eval:n {##1 * #6}
+        \fp_eval:n {##1 * #3} ~
+        \fp_eval:n {##1 * #4} ~
+        \fp_eval:n {##1 * #5} ~
+        \fp_eval:n {##1 * #6}
       }
     \cs_new:cpn { __color_convert_cmyk_ #1 :w } ##1 \s__color_stop { 1 }
     \prop_gput:Nnn \g__color_alternative_values_prop {#1} { #3 , #4 , #5 , #6 }
@@ -30435,9 +30449,9 @@
     \tl_const:cn { c__color_fallback_ #1 _tl } { rgb }
     \cs_new:cpn { __color_convert_ #1 _rgb:w } ##1 \s__color_stop
       {
-         \fp_eval:n {##1 * #3} ~
-         \fp_eval:n {##1 * #4} ~
-         \fp_eval:n {##1 * #5}
+        \fp_eval:n {##1 * #3} ~
+        \fp_eval:n {##1 * #4} ~
+        \fp_eval:n {##1 * #5}
       }
     \cs_new:cpn { __color_convert_rgb_ #1 :w } ##1 \s__color_stop { 1 }
     \prop_gput:Nnn \g__color_alternative_values_prop {#1} { #3 , #4 , #5 }
@@ -30522,7 +30536,7 @@
                       {#2}
                     \clist_map_break:n { \use_none:nnnn }
                   }
-               }
+              }
           }
           {
             \str_if_eq:nnF {##1} { none }
@@ -31171,37 +31185,37 @@
 \prg_new_conditional:Npnn \pdf_version_compare:Nn #1#2 { p , T , F , TF }
   { \use:c { __pdf_version_compare_ #1 :w } #2 . . \s__pdf_stop }
 \cs_new:cpn { __pdf_version_compare_=:w } #1 . #2 . #3 \s__pdf_stop
- {
-   \bool_lazy_and:nnTF
-    { \int_compare_p:nNn \__pdf_backend_version_major: = {#1} }
-    { \int_compare_p:nNn \__pdf_backend_version_minor: = {#2} }
-    { \prg_return_true: }
-    { \prg_return_false: }
- }
+  {
+    \bool_lazy_and:nnTF
+      { \int_compare_p:nNn \__pdf_backend_version_major: = {#1} }
+      { \int_compare_p:nNn \__pdf_backend_version_minor: = {#2} }
+      { \prg_return_true: }
+      { \prg_return_false: }
+  }
 \cs_new:cpn { __pdf_version_compare_<:w } #1 . #2 . #3 \s__pdf_stop
- {
-   \bool_lazy_or:nnTF
-    { \int_compare_p:nNn \__pdf_backend_version_major: < {#1} }
-    {
-      \bool_lazy_and_p:nn
-        { \int_compare_p:nNn \__pdf_backend_version_major: = {#1} }
-        { \int_compare_p:nNn \__pdf_backend_version_minor: < {#2} }
-    }
-    { \prg_return_true: }
-    { \prg_return_false: }
- }
+  {
+    \bool_lazy_or:nnTF
+      { \int_compare_p:nNn \__pdf_backend_version_major: < {#1} }
+      {
+        \bool_lazy_and_p:nn
+          { \int_compare_p:nNn \__pdf_backend_version_major: = {#1} }
+          { \int_compare_p:nNn \__pdf_backend_version_minor: < {#2} }
+      }
+      { \prg_return_true: }
+      { \prg_return_false: }
+  }
 \cs_new:cpn { __pdf_version_compare_>:w } #1 . #2 . #3 \s__pdf_stop
- {
-   \bool_lazy_or:nnTF
-    { \int_compare_p:nNn \__pdf_backend_version_major: > {#1} }
-    {
-      \bool_lazy_and_p:nn
-        { \int_compare_p:nNn \__pdf_backend_version_major: = {#1} }
-        { \int_compare_p:nNn \__pdf_backend_version_minor: > {#2} }
-    }
-    { \prg_return_true: }
-    { \prg_return_false: }
- }
+  {
+    \bool_lazy_or:nnTF
+      { \int_compare_p:nNn \__pdf_backend_version_major: > {#1} }
+      {
+        \bool_lazy_and_p:nn
+          { \int_compare_p:nNn \__pdf_backend_version_major: = {#1} }
+          { \int_compare_p:nNn \__pdf_backend_version_minor: > {#2} }
+      }
+      { \prg_return_true: }
+      { \prg_return_false: }
+  }
 \cs_new_protected:Npn \pdf_version_gset:n #1
   { \__pdf_version_gset:w  #1 . . \s__pdf_stop }
 \cs_new_protected:Npn \pdf_version_min_gset:n #1
@@ -31504,7 +31518,7 @@
         \box_set_eq:NN #1 #2
         \prop_set_eq:cc { coffin ~ \__coffin_to_value:N #1 ~ corners }
           { coffin ~ \__coffin_to_value:N #2 ~ corners }
-         \prop_set_eq:cc { coffin ~ \__coffin_to_value:N #1 ~ poles }
+        \prop_set_eq:cc { coffin ~ \__coffin_to_value:N #1 ~ poles }
           { coffin ~ \__coffin_to_value:N #2 ~ poles }
       }
   }
@@ -31516,7 +31530,7 @@
         \box_gset_eq:NN #1 #2
         \prop_gset_eq:cc { coffin ~ \__coffin_to_value:N #1 ~ corners }
           { coffin ~ \__coffin_to_value:N #2 ~ corners }
-         \prop_gset_eq:cc { coffin ~ \__coffin_to_value:N #1 ~ poles }
+        \prop_gset_eq:cc { coffin ~ \__coffin_to_value:N #1 ~ poles }
           { coffin ~ \__coffin_to_value:N #2 ~ poles }
       }
   }
@@ -31742,7 +31756,7 @@
                           {
                               ( \dim_to_fp:n {#7} / \dim_to_fp:n {#8} )
                             * ( \dim_to_fp:n {#4} - \dim_to_fp:n {#6} )
-                             + \dim_to_fp:n {#5}
+                            + \dim_to_fp:n {#5}
                           }
                       }
                   }
@@ -31917,13 +31931,13 @@
 \cs_new_protected:Npn \__coffin_find_corner_maxima_aux:nn #1#2
   {
     \dim_set:Nn \l__coffin_left_corner_dim
-     { \dim_min:nn { \l__coffin_left_corner_dim } {#1} }
+      { \dim_min:nn { \l__coffin_left_corner_dim } {#1} }
     \dim_set:Nn \l__coffin_right_corner_dim
-     { \dim_max:nn { \l__coffin_right_corner_dim } {#1} }
+      { \dim_max:nn { \l__coffin_right_corner_dim } {#1} }
     \dim_set:Nn \l__coffin_bottom_corner_dim
-     { \dim_min:nn { \l__coffin_bottom_corner_dim } {#2} }
+      { \dim_min:nn { \l__coffin_bottom_corner_dim } {#2} }
     \dim_set:Nn \l__coffin_top_corner_dim
-     { \dim_max:nn { \l__coffin_top_corner_dim } {#2} }
+      { \dim_max:nn { \l__coffin_top_corner_dim } {#2} }
   }
 \cs_new_protected:Npn \__coffin_find_bounding_shift:
   {
@@ -32089,13 +32103,13 @@
         \dim_compare:nNnT \l__coffin_internal_dim < \c_zero_dim
           { \__kernel_kern:n { -\l__coffin_internal_dim } }
       }
-   \__coffin_reset_structure:N \l__coffin_aligned_coffin
-   \prop_clear:c
-     {
-       coffin ~ \__coffin_to_value:N \l__coffin_aligned_coffin
-       \c_space_tl corners
-     }
-   \__coffin_update_poles:N \l__coffin_aligned_coffin
+    \__coffin_reset_structure:N \l__coffin_aligned_coffin
+    \prop_clear:c
+      {
+        coffin ~ \__coffin_to_value:N \l__coffin_aligned_coffin
+        \c_space_tl corners
+      }
+    \__coffin_update_poles:N \l__coffin_aligned_coffin
     \dim_compare:nNnTF \l__coffin_offset_x_dim < \c_zero_dim
       {
         \__coffin_offset_poles:Nnn #1 { -\l__coffin_offset_x_dim } { 0pt }
@@ -32602,7 +32616,7 @@
           { ~ }
           { \char_generate:nn {#1} { 12 } }
       }
-   \cs_new:Npn \codepoint_generate:nn #1#2
+    \cs_new:Npn \codepoint_generate:nn #1#2
       {
         \int_compare:nNnTF {#1} = { `\  }
           { ~ }
@@ -32675,11 +32689,11 @@
               }
           }
       }
-     \cs_new:Npn \__codepoint_generate:n #1
-       {
-         \__kernel_exp_not:w \exp_after:wN \exp_after:wN \exp_after:wN
-           { \char_generate:nn {#1} { 13 } }
-       }
+    \cs_new:Npn \__codepoint_generate:n #1
+      {
+        \__kernel_exp_not:w \exp_after:wN \exp_after:wN \exp_after:wN
+          { \char_generate:nn {#1} { 13 } }
+      }
   }
 \cs_new:Npn \__kernel_codepoint_to_bytes:n #1
   {
@@ -32709,7 +32723,7 @@
           \__codepoint_to_bytes_outputi:nw
             {
               \__codepoint_to_bytes_auxii:Nnn F
-                 {#1} { 64 * 64 * 64 }
+                {#1} { 64 * 64 * 64 }
             }
           \__codepoint_to_bytes_outputii:nw
             {
@@ -32898,18 +32912,18 @@
     }
   \cs_set_protected:Npe \__codepoint_data_auxv:nnnnw #1#2#3#4#5 Last> #6 \q_stop
     {
-       \exp_not:N \tl_if_blank:nTF {#6}
-         {
-           \exp_not:N \__codepoint_range:nnn {#1} { category }
-             { \exp_not:V \l__codepoint_category_Cn_tl }
-           \exp_not:N \__codepoint_range:nnn {#1} { uppercase } { 0 }
-           \exp_not:N \__codepoint_range:nnn {#1} { lowercase } { 0 }
-         }
-         {
-           \exp_not:N \__codepoint_range:nnn {#1} { category } {#2}
-           \exp_not:N \__codepoint_range:nnn {#1} { uppercase } {#3}
-           \exp_not:N \__codepoint_range:nnn {#1} { lowercase } {#4}
-         }
+      \exp_not:N \tl_if_blank:nTF {#6}
+        {
+          \exp_not:N \__codepoint_range:nnn {#1} { category }
+            { \exp_not:V \l__codepoint_category_Cn_tl }
+          \exp_not:N \__codepoint_range:nnn {#1} { uppercase } { 0 }
+          \exp_not:N \__codepoint_range:nnn {#1} { lowercase } { 0 }
+        }
+        {
+          \exp_not:N \__codepoint_range:nnn {#1} { category } {#2}
+          \exp_not:N \__codepoint_range:nnn {#1} { uppercase } {#3}
+          \exp_not:N \__codepoint_range:nnn {#1} { lowercase } {#4}
+        }
     }
   \cs_set_protected:Npn \__codepoint_range:nnn #1
     {
@@ -32936,20 +32950,20 @@
     \int_compare:nNnT { \clist_count:c { l__codepoint_ #3 _block_clist } }
       = \c__codepoint_block_size_int
       { \__codepoint_save_blocks:nn {#3} { 1 } }
-     \int_compare:nNnF
-       { \int_div_truncate:nn { #2 - #1 } \c__codepoint_block_size_int } = 0
-       {
-         \tl_set:ce { l__codepoint_ #3 _block_clist }
-           {
-             \exp_args:NNe \use:nn \use_none:n
-               { \prg_replicate:nn { \c__codepoint_block_size_int } { , #4 } }
-           }
-         \__codepoint_save_blocks:nn {#3}
-           { \int_div_truncate:nn { (#2 - #1) } \c__codepoint_block_size_int }
-        }
-     \prg_replicate:nn
-       { \int_mod:nn { #2 - #1 } \c__codepoint_block_size_int }
-       { \clist_put_right:ce { l__codepoint_ #3 _block_clist } {#4} }
+    \int_compare:nNnF
+      { \int_div_truncate:nn { #2 - #1 } \c__codepoint_block_size_int } = 0
+      {
+        \tl_set:ce { l__codepoint_ #3 _block_clist }
+          {
+            \exp_args:NNe \use:nn \use_none:n
+              { \prg_replicate:nn { \c__codepoint_block_size_int } { , #4 } }
+          }
+        \__codepoint_save_blocks:nn {#3}
+          { \int_div_truncate:nn { (#2 - #1) } \c__codepoint_block_size_int }
+      }
+    \prg_replicate:nn
+      { \int_mod:nn { #2 - #1 } \c__codepoint_block_size_int }
+      { \clist_put_right:ce { l__codepoint_ #3 _block_clist } {#4} }
     }
   \cs_set_protected:Npn \__codepoint_save_blocks:nn #1#2
     {
@@ -32990,13 +33004,13 @@
           \__codepoint_range:nnn { 110000 } {##1} { 0 }
           \__codepoint_finalise_blocks:n {##1}
         }
-   }
+    }
   \cs_set_protected:Npn \__codepoint_finalise_blocks:n #1
     {
       \cs_gset_eq:cc { c__codepoint_ #1 _index_intarray } { g__codepoint_ #1 _index_intarray }
       \cs_undefine:c { g__codepoint_ #1 _index_intarray }
       \intarray_new:cn { g__codepoint_ #1 _blocks_intarray }
-         { ( \tl_use:c { l__codepoint_ #1 _block_tl } - 1 ) * \c__codepoint_block_size_int }
+        { ( \tl_use:c { l__codepoint_ #1 _block_tl } - 1 ) * \c__codepoint_block_size_int }
       \int_step_inline:nn { \tl_use:c { l__codepoint_ #1 _block_tl } - 1 }
         {
           \exp_args:Nv \__codepoint_finalise_blocks:nnn
@@ -33330,15 +33344,15 @@
             \if_catcode:w \exp_not:N #1 \c_space_token
               10
             \else:
-             \if_catcode:w \exp_not:N #1 \c_catcode_letter_token
-               11
-             \else:
-               \if_catcode:w \exp_not:N #1 \c_catcode_other_token
-                 12
-               \else:
-                 13
-               \fi:
-             \fi:
+              \if_catcode:w \exp_not:N #1 \c_catcode_letter_token
+                11
+              \else:
+                \if_catcode:w \exp_not:N #1 \c_catcode_other_token
+                  12
+                \else:
+                  13
+                \fi:
+              \fi:
             \fi:
           \fi:
         \fi:
@@ -33387,9 +33401,9 @@
         \int_compare:nNnTF { `#2 } < { "E0 }
           { \__text_codepoint_process:nNN }
           {
-             \int_compare:nNnTF { `#2 } < { "F0 }
-               { \__text_codepoint_process:nNNN }
-               { \__text_codepoint_process:nNNNN }
+            \int_compare:nNnTF { `#2 } < { "F0 }
+              { \__text_codepoint_process:nNNN }
+              { \__text_codepoint_process:nNNNN }
           }
             {#1} #2
         }
@@ -33598,10 +33612,10 @@
     \token_if_eq_meaning:NNTF #1 #2
       {
         \__text_use_i_delimit_by_q_recursion_stop:nw
-           {
-             \__text_expand_store:n {#1}
-             \__text_expand_math_loop:Nw #3
-           }
+          {
+            \__text_expand_store:n {#1}
+            \__text_expand_math_loop:Nw #3
+          }
       }
       { \__text_expand_math_search:NNN #1 }
   }
@@ -33912,7 +33926,7 @@
   { \__text_change_case:nnnn {#1} {#1} {#2} {#3} }
 \cs_new:Npn \__text_change_case:nnnn #1#2#3#4
   {
-     \__kernel_exp_not:w \exp_after:wN
+    \__kernel_exp_not:w \exp_after:wN
       {
         \exp:w
         \exp_args:Ne \__text_change_case_auxi:nnnn
@@ -34052,10 +34066,10 @@
     \token_if_eq_meaning:NNTF #4 #5
       {
         \__text_use_i_delimit_by_q_recursion_stop:nw
-           {
-             \__text_change_case_store:n {#4}
-             \__text_change_case_math_loop:nnnNw {#1} {#2} {#3} #6
-           }
+          {
+            \__text_change_case_store:n {#4}
+            \__text_change_case_math_loop:nnnNw {#1} {#2} {#3} #6
+          }
       }
       { \__text_change_case_math_search:nnnNNN {#1} {#2} {#3} #4 }
   }
@@ -34133,8 +34147,8 @@
 \cs_new:Npn \__text_change_case_exclude:nnnNnn #1#2#3#4#5#6
   {
     \tl_if_blank:nTF {#5}
-       { \__text_change_case_store:n { #4 {#6} } }
-       {
+      { \__text_change_case_store:n { #4 {#6} } }
+      {
         \__text_change_case_store:o
           {
             \exp_after:wN #4
@@ -34215,7 +34229,7 @@
       {
         \__text_change_case_store:v
           { c__text_ #1 case_ \token_to_str:N #6 _tl }
-         \use:c { __text_change_case_next_ #2 :nnn } {#2} {#4} {#5}
+        \use:c { __text_change_case_next_ #2 :nnn } {#2} {#4} {#5}
       }
       {
         \__text_change_case_store:n {#6}
@@ -34387,10 +34401,10 @@
             \codepoint_generate:nn {#2}
               { \char_value_catcode:n {#2} }
             \tl_if_blank:nF {#3}
-             {
-               \codepoint_generate:nn {#3}
-                 { \char_value_catcode:n {#3} }
-             }
+              {
+                \codepoint_generate:nn {#3}
+                  { \char_value_catcode:n {#3} }
+              }
           }
       }
   }
@@ -34472,10 +34486,10 @@
     \__text_codepoint_compare:nNnTF {#5} = { "00DF }
       {
         \__text_change_case_store:e
-         {
-           \codepoint_generate:nn { "1E9E }
-             { \__text_change_case_catcode:nn {#5} { "1E9E } }
-         }
+          {
+            \codepoint_generate:nn { "1E9E }
+              { \__text_change_case_catcode:nn {#5} { "1E9E } }
+          }
         \use:c { __text_change_case_next_ #2 :nnn }
           {#2} {#3} {#4}
       }
@@ -34879,7 +34893,7 @@
                 \else:
                   \if_int_compare:w #1 = "1FCF \exp_stop_f:
                     \prg_return_true:
-                   \else:
+                  \else:
                     \if_int_compare:w #1 = "1FDD \exp_stop_f:
                       \prg_return_true:
                     \else:
@@ -35083,15 +35097,15 @@
 \cs_new:Npn \__text_change_case_breathing:nnnnnnw #1#2#3#4#5#6#7 \q_mark
   {
     \tl_if_blank:nTF {#7}
-     {
-       \__text_change_case_breathing_aux:nnnnnn
-         {#1} {#2} {#3} {#4} {#5} {#6}
-     }
-     {
-       \__text_codepoint_process:nN
-         { \__text_change_case_breathing:nnnnnnw {#1} {#2} {#3} {#4} {#5} }
-           #7 \q_mark
-     }
+      {
+        \__text_change_case_breathing_aux:nnnnnn
+          {#1} {#2} {#3} {#4} {#5} {#6}
+      }
+      {
+        \__text_codepoint_process:nN
+          { \__text_change_case_breathing:nnnnnnw {#1} {#2} {#3} {#4} {#5} }
+          #7 \q_mark
+      }
   }
 \cs_new:Npn \__text_change_case_breathing_aux:nnnnnn #1#2#3#4#5#6
   {
@@ -35118,12 +35132,12 @@
   }
 \cs_new:Npn \__text_change_case_breathing_dialytika:nnnn #1#2#3#4
   {
-     \__text_change_case_if_takes_dialytika:nTF {#4}
-       {
-         \__text_change_case_upper_el_dialytika:n {#4}
-         \__text_change_case_loop:nnnw {#1} {#2} {#3}
-       }
-       { \__text_change_case_loop:nnnw {#1} {#2} {#3} #4 }
+    \__text_change_case_if_takes_dialytika:nTF {#4}
+      {
+        \__text_change_case_upper_el_dialytika:n {#4}
+        \__text_change_case_loop:nnnw {#1} {#2} {#3}
+      }
+      { \__text_change_case_loop:nnnw {#1} {#2} {#3} #4 }
   }
 \cs_new:Npn \__text_change_case_title_el:nnnnn #1#2#3#4#5
   { \__text_change_case_codepoint:nnnnn {#1} {#2} {#3} {#4} {#5} }
@@ -35244,7 +35258,7 @@
     \tl_if_head_is_N_type:nTF {#4}
       { \__text_change_case_lower_lt:nnnN }
       { \__text_change_case_loop:nnnw }
-       {#1} {#2} {#3} #4 \q__text_recursion_stop
+        {#1} {#2} {#3} #4 \q__text_recursion_stop
   }
 \cs_new:Npn \__text_change_case_lower_lt:nnnN #1#2#3#4
   {
@@ -35277,7 +35291,7 @@
     \__text_change_case_loop:nnnw {#1} {#2} {#3} #4
   }
 \cs_new:Npn \__text_change_case_upper_lt:nnnnn #1#2#3#4#5
- {
+  {
     \exp_args:Ne \__text_change_case_upper_lt_aux:nnnnn
       {
         \int_case:nn { \__text_codepoint_from_chars:Nw #5 }
@@ -35287,7 +35301,7 @@
             { "012F } { "012E }
           }
       }
-        {#2} {#3} {#4} {#5}
+      {#2} {#3} {#4} {#5}
   }
 \cs_new:Npn \__text_change_case_upper_lt_aux:nnnnn #1#2#3#4#5
   {
@@ -35511,11 +35525,11 @@
       }
   }
 \bool_lazy_or:nnF
- { \sys_if_engine_luatex_p: }
- { \sys_if_engine_xetex_p: }
- {
-   \text_declare_uppercase_mapping:nn { "01F0 } { \v { J } }
- }
+  { \sys_if_engine_luatex_p: }
+  { \sys_if_engine_xetex_p: }
+  {
+    \text_declare_uppercase_mapping:nn { "01F0 } { \v { J } }
+  }
 %% File: l3text-map.dtx
 \cs_new:Npn \text_map_function:nN #1#2
   { \exp_args:Ne \__text_map_function:nN { \text_expand:n {#1} } #2 }
@@ -35929,7 +35943,7 @@
     \token_if_eq_meaning:NNTF #1 #2
       {
         \__text_use_i_delimit_by_q_recursion_stop:nw
-           { \__text_purify_math_start:NNw #2 #3 }
+          { \__text_purify_math_start:NNw #2 #3 }
       }
       { \__text_purify_math_search:NNN #1 }
   }
@@ -36448,8 +36462,6 @@
     #1 #2 { #3 }
     \__seq_pop_item_def:
   }
-\cs_new_protected:Npn \tl_build_get:NN
-  { \__tl_build_get:NNN \__kernel_tl_set:Ne }
 %% File: l3legacy.dtx
 \prg_new_conditional:Npnn \legacy_if:n #1 { p , T , F , TF }
   {
@@ -36489,9 +36501,9 @@
         \__kernel_deprecation_error:Nnn #4 {#2} {#1}
       }
       { \tex_let:D #4 \scan_stop: }
-     \cs_if_eq:NNTF #3 \cs_gset_protected:Npn
-        { \__deprecation_warn_once:nnNnn {#1} {#2} #4 {#5} {#6} }
-        { \__deprecation_patch_aux:Nn #3 { #4 #5 {#6} } }
+    \cs_if_eq:NNTF #3 \cs_gset_protected:Npn
+      { \__deprecation_warn_once:nnNnn {#1} {#2} #4 {#5} {#6} }
+      { \__deprecation_patch_aux:Nn #3 { #4 #5 {#6} } }
   }
 \cs_new_protected:Npn \__deprecation_warn_once:nnNnn #1#2#3#4#5
   {
@@ -36862,6 +36874,8 @@
 \cs_new_protected:Npn \tl_build_clear:N { \tl_build_begin:N }
 \__kernel_patch_deprecation:nnNNpn { 2023-10-18 } { \tl_build_gbegin:N }
 \cs_new_protected:Npn \tl_build_gclear:N { \tl_build_gbegin:N }
+\__kernel_patch_deprecation:nnNNpn { 2023-10-25 } { \tl_build_get_intermediate:NN }
+\cs_new_protected:Npn \tl_build_get:NN { \tl_build_get_intermediate:NN }
 \__kernel_patch_deprecation:nnNNpn { 2022-10-09 } { [ \codepoint_generate:nn ] }
 \cs_gset:Npn \char_to_utfviii_bytes:n { \__kernel_codepoint_to_bytes:n }
 \__kernel_patch_deprecation:nnNNpn { 2022-10-09 } { \codepoint_to_nfd:n }

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% expl3.dtx  (with options: `generic,loader')
 %% 
-%% Copyright (C) 1990-2023 The LaTeX Project
+%% Copyright (C) 1990-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2023-12-11}%
+\def\ExplFileDate{2024-01-04}%
 \let\ExplLoaderFileDate\ExplFileDate
 \begingroup
   \catcode`\_=11

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% expl3.dtx  (with options: `2ekernel,loader')
 %% 
-%% Copyright (C) 1990-2023 The LaTeX Project
+%% Copyright (C) 1990-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2023-12-11}%
+\def\ExplFileDate{2024-01-04}%
 \let\ExplLoaderFileDate\ExplFileDate
 \begingroup
   \catcode`\_=11

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.lua	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.lua	2024-01-05 21:44:47 UTC (rev 69310)
@@ -10,7 +10,7 @@
 -- l3token.dtx  (with options: `package,lua')
 -- l3intarray.dtx  (with options: `package,lua')
 -- 
--- Copyright (C) 1990-2023 The LaTeX Project
+-- Copyright (C) 1990-2024 The LaTeX Project
 -- 
 -- It may be distributed and/or modified under the conditions of
 -- the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% expl3.dtx  (with options: `package,loader')
 %% 
-%% Copyright (C) 1990-2023 The LaTeX Project
+%% Copyright (C) 1990-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2023-12-11}%
+\def\ExplFileDate{2024-01-04}%
 \let\ExplLoaderFileDate\ExplFileDate
 \ProvidesPackage{expl3}
   [%

Deleted: trunk/Master/texmf-dist/tex/latex/l3kernel/l3bitset.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3bitset.sty	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3bitset.sty	2024-01-05 21:44:47 UTC (rev 69310)
@@ -1,26 +0,0 @@
-%%
-%% This is file `l3bitset.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% l3bitset.dtx  (with options: `stub')
-%% 
-%% Copyright (C) 1990-2023 The LaTeX Project
-%% 
-%% It may be distributed and/or modified under the conditions of
-%% the LaTeX Project Public License (LPPL), either version 1.3c of
-%% this license or (at your option) any later version.  The latest
-%% version of this license is in the file:
-%% 
-%%    https://www.latex-project.org/lppl.txt
-%% 
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%% 
-%% File: l3bitset.dtx
-\ProvidesExplPackage{l3bitset}{2023-12-11}{}
-  {L3 Experimental bitset support}
-%% 
-%%
-%% End of file `l3bitset.sty'.

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3debug.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3debug.def	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3debug.def	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% l3debug.dtx  (with options: `package')
 %% 
-%% Copyright (C) 1990-2023 The LaTeX Project
+%% Copyright (C) 1990-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: l3debug.dtx
-\ProvidesExplFile{l3debug.def}{2023-12-11}{}{L3 Debugging support}
+\ProvidesExplFile{l3debug.def}{2024-01-04}{}{L3 Debugging support}
 \scan_new:N \s__debug_stop
 \cs_new:Npn \__debug_use_i_delimit_by_s_stop:nw #1 #2 \s__debug_stop {#1}
 \quark_new:N \q__debug_recursion_tail
@@ -28,12 +28,12 @@
   #1 \q__debug_recursion_stop { }
 \__kernel_quark_new_test:N \__debug_if_recursion_tail_stop:N
 \cs_set_protected:Npn \debug_on:n #1
-   {
+  {
     \exp_args:No \clist_map_inline:nn { \tl_to_str:n {#1} }
-       {
+      {
         \cs_if_exist_use:cF { __debug_ ##1 _on: }
           { \msg_error:nnn { debug } { debug } {##1} }
-       }
+      }
   }
 \cs_set_protected:Npn \debug_off:n #1
   {

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% l3doc.dtx  (with options: `class')
 %% 
-%% Copyright (C) 1990-2023 The LaTeX Project
+%% Copyright (C) 1990-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -20,7 +20,7 @@
 %% 
 %% File: l3doc.dtx
 \RequirePackage{calc}
-\ProvidesExplClass{l3doc}{2023-12-11}{}
+\ProvidesExplClass{l3doc}{2024-01-04}{}
   {L3 Experimental documentation class}
 \clist_new:N \g_docinput_clist
 \seq_new:N \g_doc_functions_seq
@@ -386,11 +386,11 @@
         \bool_gset_true:N \g__codedoc_typeset_documentation_bool
         \bool_gset_true:N \g__codedoc_typeset_implementation_bool
       } ,
-   onlydoc .code:n =
-    {
-      \bool_gset_true:N \g__codedoc_typeset_documentation_bool
-      \bool_gset_false:N \g__codedoc_typeset_implementation_bool
-    } ,
+    onlydoc .code:n =
+      {
+        \bool_gset_true:N \g__codedoc_typeset_documentation_bool
+        \bool_gset_false:N \g__codedoc_typeset_implementation_bool
+      } ,
     check .bool_gset:N = \g__codedoc_checkfunc_bool ,
     checktest .bool_gset:N = \g__codedoc_checktest_bool ,
     kernel .bool_gset:N = \g__codedoc_kernel_bool ,
@@ -693,28 +693,28 @@
         \@
       }
     \bool_if:NT \l__codedoc_allow_indexing_bool
-     {
-      \bool_if:NF \l__codedoc_cmd_noindex_bool
-       {
-        \quark_if_no_value:NF \l__codedoc_cmd_index_tl
+      {
+        \bool_if:NF \l__codedoc_cmd_noindex_bool
           {
-            \__kernel_tl_set:Ne \l__codedoc_cmd_tl
-              { \c_backslash_str \exp_not:o { \l__codedoc_cmd_index_tl } }
+            \quark_if_no_value:NF \l__codedoc_cmd_index_tl
+              {
+                \__kernel_tl_set:Ne \l__codedoc_cmd_tl
+                  { \c_backslash_str \exp_not:o { \l__codedoc_cmd_index_tl } }
+              }
+            \exp_args:No \__codedoc_key_get:n { \l__codedoc_cmd_tl }
+            \quark_if_no_value:NF \l__codedoc_cmd_module_tl
+              {
+                \__kernel_tl_set:Ne \l__codedoc_index_module_tl
+                  { \tl_to_str:N \l__codedoc_cmd_module_tl }
+              }
+            \__codedoc_special_index_module:ooonN
+              { \l__codedoc_index_key_tl }
+              { \l__codedoc_index_macro_tl }
+              { \l__codedoc_index_module_tl }
+              { usage }
+              \l__codedoc_index_internal_bool
           }
-        \exp_args:No \__codedoc_key_get:n { \l__codedoc_cmd_tl }
-        \quark_if_no_value:NF \l__codedoc_cmd_module_tl
-          {
-            \__kernel_tl_set:Ne \l__codedoc_index_module_tl
-              { \tl_to_str:N \l__codedoc_cmd_module_tl }
-          }
-        \__codedoc_special_index_module:ooonN
-          { \l__codedoc_index_key_tl }
-          { \l__codedoc_index_macro_tl }
-          { \l__codedoc_index_module_tl }
-          { usage }
-          \l__codedoc_index_internal_bool
-       }
-     }
+      }
   }
 \cs_generate_variant:Nn \__codedoc_cmd:nn { no }
 \cs_new_protected:Npn \__codedoc_meta:n #1
@@ -1154,8 +1154,11 @@
     \__codedoc_typeset_aux:n { \__codedoc_get_function_name:n {#1} }
     :
     \int_compare:nTF { \seq_count:N \g__codedoc_variants_seq == 1 }
-      { \seq_use:Nn \g__codedoc_variants_seq { } }
       {
+        \seq_use:Nn \g__codedoc_variants_seq { }
+        \bool_if:NT #2 { \__codedoc_typeset_TF: }
+      }
+      {
         \hbox_set:Nn \l_tmpa_box
           { \seq_use:Nn \g__codedoc_variants_seq { \textrm| \nolinebreak[2] } }
         \textrm(
@@ -1367,9 +1370,14 @@
       { \__codedoc_names_block_base_map:N \__codedoc_macro_save_names_aux:n }
       {
         \seq_gput_right:Ne \g__codedoc_nested_names_seq
-          { \tl_to_str:N \l__codedoc_macro_documented_tl }
+          {
+            \exp_after:wN \__codedoc_macro_save_names_aux:w
+              \l__codedoc_macro_documented_tl \q__codedoc_stop
+          }
       }
   }
+\cs_new:Npn \__codedoc_macro_save_names_aux:w #1#2 \q__codedoc_stop
+  { \token_to_str:N #1 \tl_to_str:n {#2} }
 \cs_new_protected:Npn \__codedoc_macro_save_names_aux:n #1
   { \seq_gput_right:Nn \g__codedoc_nested_names_seq {#1} }
 \cs_new_protected:Npn \__codedoc_macro_exclude_index:
@@ -1556,21 +1564,21 @@
 \cs_new_protected:Npn \__codedoc_macro_end_check_tested:
   {
     \bool_lazy_all:nT
-     {
-       { \g__codedoc_checktest_bool }
-       { ! \l__codedoc_macro_var_bool }
-       { ! \l__codedoc_macro_tested_bool }
-     }
-     {
-       \seq_set_filter:NNn \l__codedoc_tmpa_seq \l__codedoc_names_seq
-         { ! \__codedoc_if_macro_internal_p:n {##1} }
-       \seq_gput_right:Ne \g__codedoc_not_tested_seq
-         {
-           \seq_use:Nn \l__codedoc_tmpa_seq { , }
-           \bool_if:NTF \l__codedoc_macro_pTF_bool {~(pTF)}
-             { \bool_if:NT \l__codedoc_macro_TF_bool {~(TF)} }
-         }
-     }
+      {
+        { \g__codedoc_checktest_bool }
+        { ! \l__codedoc_macro_var_bool }
+        { ! \l__codedoc_macro_tested_bool }
+      }
+      {
+        \seq_set_filter:NNn \l__codedoc_tmpa_seq \l__codedoc_names_seq
+          { ! \__codedoc_if_macro_internal_p:n {##1} }
+        \seq_gput_right:Ne \g__codedoc_not_tested_seq
+          {
+            \seq_use:Nn \l__codedoc_tmpa_seq { , }
+            \bool_if:NTF \l__codedoc_macro_pTF_bool {~(pTF)}
+              { \bool_if:NT \l__codedoc_macro_TF_bool {~(TF)} }
+          }
+      }
   }
 \cs_new_protected:Npn \__codedoc_macro_end_style:n #1
   {
@@ -1676,17 +1684,17 @@
 \providecommand\Hy at footnote@currentHref{}
 \prop_new:N\g__codedoc_fnmark_prop
 \cs_new_protected:Npn \__codedoc_fn_store:
- {
-   \prop_gput:Nee\g__codedoc_fnmark_prop
-     {fn\int_use:N\c at footnote}{{\Hy at footnote@currentHref}{\int_use:N\c at footnote}}
- }
+  {
+    \prop_gput:Nee\g__codedoc_fnmark_prop
+      {fn\int_use:N\c at footnote}{{\Hy at footnote@currentHref}{\int_use:N\c at footnote}}
+  }
 \cs_new_protected:Npn \__codedoc_fn_restore:n  #1
- {
-   \prop_get:NnN \g__codedoc_fnmark_prop {fn#1}\l__codedoc_tmpa_tl
-   \tl_gset:Ne\Hy at footnote@currentHref
-     {\exp_last_unbraced:NV\use_i:nn \l__codedoc_tmpa_tl }
-   \setcounter{footnote}{\exp_last_unbraced:NV\use_ii:nn \l__codedoc_tmpa_tl}
- }
+  {
+    \prop_get:NnN \g__codedoc_fnmark_prop {fn#1}\l__codedoc_tmpa_tl
+    \tl_gset:Ne\Hy at footnote@currentHref
+      {\exp_last_unbraced:NV\use_i:nn \l__codedoc_tmpa_tl }
+    \setcounter{footnote}{\exp_last_unbraced:NV\use_ii:nn \l__codedoc_tmpa_tl}
+  }
 
 \cs_generate_variant:Nn \hook_gput_next_code:nn {ne}
 \cs_new_protected:Npn \__codedoc_fn_footnote:nn #1 #2
@@ -1767,7 +1775,7 @@
       { #1 \endinput }
   }
 \cs_if_exist:NT \MaybeStop
-   { \RenewCommandCopy \MaybeStop \StopEventually }
+  { \RenewCommandCopy \MaybeStop \StopEventually }
 \DeclareDocumentCommand \Finale { }
   { \tl_use:N \g__codedoc_finale_tl }
 \tl_new:N \g__codedoc_finale_tl

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% l3docstrip.dtx  (with options: `program')
 %% 
-%% Copyright (C) 1990-2023 The LaTeX Project
+%% Copyright (C) 1990-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88591')
 %% 
-%% Copyright (C) 1990-2023 The LaTeX Project
+%% Copyright (C) 1990-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso885910')
 %% 
-%% Copyright (C) 1990-2023 The LaTeX Project
+%% Copyright (C) 1990-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso885911')
 %% 
-%% Copyright (C) 1990-2023 The LaTeX Project
+%% Copyright (C) 1990-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso885913')
 %% 
-%% Copyright (C) 1990-2023 The LaTeX Project
+%% Copyright (C) 1990-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso885914')
 %% 
-%% Copyright (C) 1990-2023 The LaTeX Project
+%% Copyright (C) 1990-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso885915')
 %% 
-%% Copyright (C) 1990-2023 The LaTeX Project
+%% Copyright (C) 1990-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso885916')
 %% 
-%% Copyright (C) 1990-2023 The LaTeX Project
+%% Copyright (C) 1990-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88592')
 %% 
-%% Copyright (C) 1990-2023 The LaTeX Project
+%% Copyright (C) 1990-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88593')
 %% 
-%% Copyright (C) 1990-2023 The LaTeX Project
+%% Copyright (C) 1990-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88594')
 %% 
-%% Copyright (C) 1990-2023 The LaTeX Project
+%% Copyright (C) 1990-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88595')
 %% 
-%% Copyright (C) 1990-2023 The LaTeX Project
+%% Copyright (C) 1990-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88596')
 %% 
-%% Copyright (C) 1990-2023 The LaTeX Project
+%% Copyright (C) 1990-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88597')
 %% 
-%% Copyright (C) 1990-2023 The LaTeX Project
+%% Copyright (C) 1990-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88598')
 %% 
-%% Copyright (C) 1990-2023 The LaTeX Project
+%% Copyright (C) 1990-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def	2024-01-05 21:43:17 UTC (rev 69309)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def	2024-01-05 21:44:47 UTC (rev 69310)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88599')
 %% 
-%% Copyright (C) 1990-2023 The LaTeX Project
+%% Copyright (C) 1990-2024 The LaTeX Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of



More information about the tex-live-commits mailing list.