texlive[73901] Build/source/utils: asy 2.99 sources

commits+karl at tug.org commits+karl at tug.org
Tue Feb 11 22:53:03 CET 2025


Revision: 73901
          https://tug.org/svn/texlive?view=revision&revision=73901
Author:   karl
Date:     2025-02-11 22:53:03 +0100 (Tue, 11 Feb 2025)
Log Message:
-----------
asy 2.99 sources

Modified Paths:
--------------
    trunk/Build/source/utils/README
    trunk/Build/source/utils/asymptote/ChangeLog
    trunk/Build/source/utils/asymptote/GUI/xasyicons/icons_rc.py
    trunk/Build/source/utils/asymptote/GUI/xasyversion/version.py
    trunk/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ProcessIoService.h
    trunk/Build/source/utils/asymptote/LspCpp/src/jsonrpc/TcpServer.cpp
    trunk/Build/source/utils/asymptote/LspCpp/src/jsonrpc/WebSocketServer.cpp
    trunk/Build/source/utils/asymptote/LspCpp/third_party/uri/CMakeFiles/CMakeDirectoryInformation.cmake
    trunk/Build/source/utils/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/build.make
    trunk/Build/source/utils/asymptote/LspCpp/third_party/uri/Doxyfile
    trunk/Build/source/utils/asymptote/LspCpp/third_party/uri/src/libnetwork-uri.a
    trunk/Build/source/utils/asymptote/Makefile.in
    trunk/Build/source/utils/asymptote/ReleaseNotes
    trunk/Build/source/utils/asymptote/asy-keywords.el
    trunk/Build/source/utils/asymptote/asy.list
    trunk/Build/source/utils/asymptote/asymptote.spec
    trunk/Build/source/utils/asymptote/autogen.sh
    trunk/Build/source/utils/asymptote/config.guess
    trunk/Build/source/utils/asymptote/config.sub
    trunk/Build/source/utils/asymptote/configure
    trunk/Build/source/utils/asymptote/configure.ac
    trunk/Build/source/utils/asymptote/doc/CAD.pdf
    trunk/Build/source/utils/asymptote/doc/FAQ/asy-faq.info
    trunk/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf
    trunk/Build/source/utils/asymptote/doc/asy-latex.pdf
    trunk/Build/source/utils/asymptote/doc/asyRefCard.pdf
    trunk/Build/source/utils/asymptote/doc/asymptote.pdf
    trunk/Build/source/utils/asymptote/doc/png/asymptote.info
    trunk/Build/source/utils/asymptote/gc/autom4te.cache/requests
    trunk/Build/source/utils/asymptote/install-sh
    trunk/Build/source/utils/asymptote/revision.cc

Added Paths:
-----------
    trunk/Build/source/utils/asymptote/GUI/xasyicons/__init__.py
    trunk/Build/source/utils/asymptote/GUI/xasyqtui/__init__.py
    trunk/Build/source/utils/asymptote/GUI/xasyversion/__init__.py

Modified: trunk/Build/source/utils/README
===================================================================
--- trunk/Build/source/utils/README	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/README	2025-02-11 21:53:03 UTC (rev 73901)
@@ -4,7 +4,7 @@
 Extra utilities we (optionally) compile for TeX Live.
 See comments in ../texk/README.
 
-asymptote 2.98 - checked 9feb25
+asymptote 2.99 - checked 11feb25
   update to TL from CTAN, to include prebuilt doc.
   see https://tug.org/texlive/build.html#asymptote
   and tlpkg/bin/tl-update-asy

Modified: trunk/Build/source/utils/asymptote/ChangeLog
===================================================================
--- trunk/Build/source/utils/asymptote/ChangeLog	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/ChangeLog	2025-02-11 21:53:03 UTC (rev 73901)
@@ -1,3 +1,57 @@
+commit cf4243cb97f7d700a320cb93a0e7a47328c32b35
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Mon Feb 10 14:44:17 2025 -0800
+
+    Fix make maintainer-clean.
+
+commit 2f0a7cfb60a6a3475ee52990154ba28244832d17
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Mon Feb 10 14:24:29 2025 -0800
+
+    Update config scripts.
+
+commit 214552f58197224a5b3a7efd4a15a6757c90813b
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Mon Feb 10 13:35:08 2025 -0800
+
+    Remove libtool dependence from configure.
+
+commit 7fe989a89945c93c85e1e3cbb3cec4ce7460e170
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Mon Feb 10 11:33:00 2025 -0800
+
+    git subrepo pull (merge) LspCpp
+    
+    subrepo:
+      subdir:   "LspCpp"
+      merged:   "84c9831f2"
+    upstream:
+      origin:   "git at github.com:vectorgraphics/LspCpp"
+      branch:   "master"
+      commit:   "aa2d67051"
+    git-subrepo:
+      version:  "0.4.9"
+      origin:   "https://github.com/ingydotnet/git-subrepo"
+      commit:   "b9b059a"
+
+commit d31fd43aad1be82b57517fb4f9bab41a8e9575f7
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Mon Feb 10 01:26:47 2025 -0800
+
+    Update install-sh.
+
+commit 947c860f9430ef249407d2a051ed2b7e263c29e6
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Sun Feb 9 13:51:32 2025 -0800
+
+    Disable dependency tracking for one-time gc builds.
+
+commit cc35f7e78d0dec53c50b8c34f1318500c3e13187
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Sun Feb 9 11:32:32 2025 -0800
+
+    Increment version to 2.99.
+
 commit 83de5cbc8268d689b52c07c87927cae3ab94e245
 Author: John Bowman <bowman at ualberta.ca>
 Date:   Sun Feb 9 10:01:51 2025 -0800

Index: trunk/Build/source/utils/asymptote/GUI/xasyicons/__init__.py
===================================================================
--- trunk/Build/source/utils/asymptote/GUI/xasyicons/__init__.py	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/GUI/xasyicons/__init__.py	2025-02-11 21:53:03 UTC (rev 73901)

Property changes on: trunk/Build/source/utils/asymptote/GUI/xasyicons/__init__.py
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Build/source/utils/asymptote/GUI/xasyicons/icons_rc.py
===================================================================
--- trunk/Build/source/utils/asymptote/GUI/xasyicons/icons_rc.py	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/GUI/xasyicons/icons_rc.py	2025-02-11 21:53:03 UTC (rev 73901)
@@ -2797,93 +2797,93 @@
 \x00\x00\x00\x00\x00\x02\x00\x00\x00\x2c\x00\x00\x00\x02\
 \x00\x00\x00\x00\x00\x00\x00\x00\
 \x00\x00\x00\x10\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01\x94\xec\x03\xf6\x15\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9c\
 \x00\x00\x00\x38\x00\x00\x00\x00\x00\x01\x00\x00\x07\x6f\
-\x00\x00\x01\x94\xec\x03\xf6\x13\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9b\
 \x00\x00\x00\x52\x00\x00\x00\x00\x00\x01\x00\x00\x0d\x0f\
-\x00\x00\x01\x94\xec\x03\xf6\x11\
+\x00\x00\x01\x94\xf2\x0a\x5c\x99\
 \x00\x00\x00\x84\x00\x00\x00\x00\x00\x01\x00\x00\x0f\x85\
-\x00\x00\x01\x94\xec\x03\xf6\x13\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9a\
 \x00\x00\x00\xb0\x00\x00\x00\x00\x00\x01\x00\x00\x12\xa4\
-\x00\x00\x01\x94\xec\x03\xf6\x14\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9b\
 \x00\x00\x00\xee\x00\x01\x00\x00\x00\x01\x00\x00\x16\x90\
-\x00\x00\x01\x94\xec\x03\xf6\x14\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9c\
 \x00\x00\x01\x14\x00\x00\x00\x00\x00\x01\x00\x00\x18\xb3\
-\x00\x00\x01\x94\xec\x03\xf6\x12\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9a\
 \x00\x00\x01\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x1b\xe1\
-\x00\x00\x01\x94\xec\x03\xf6\x15\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9d\
 \x00\x00\x01\x54\x00\x00\x00\x00\x00\x01\x00\x00\x1f\xfc\
-\x00\x00\x01\x94\xec\x03\xf6\x14\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9b\
 \x00\x00\x01\x78\x00\x00\x00\x00\x00\x01\x00\x00\x24\xa3\
-\x00\x00\x01\x94\xec\x03\xf6\x15\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9c\
 \x00\x00\x01\x98\x00\x00\x00\x00\x00\x01\x00\x00\x29\x1a\
-\x00\x00\x01\x94\xec\x03\xf6\x14\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9c\
 \x00\x00\x01\xae\x00\x00\x00\x00\x00\x01\x00\x00\x2d\xba\
-\x00\x00\x01\x94\xec\x03\xf6\x13\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9a\
 \x00\x00\x01\xd0\x00\x00\x00\x00\x00\x01\x00\x00\x30\x7f\
-\x00\x00\x01\x94\xec\x03\xf6\x15\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9d\
 \x00\x00\x02\x04\x00\x00\x00\x00\x00\x01\x00\x00\x35\x4d\
-\x00\x00\x01\x94\xec\x03\xf6\x12\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9a\
 \x00\x00\x02\x2a\x00\x00\x00\x00\x00\x01\x00\x00\x3b\x0c\
-\x00\x00\x01\x94\xec\x03\xf6\x14\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9b\
 \x00\x00\x02\x6a\x00\x00\x00\x00\x00\x01\x00\x00\x3e\xe9\
-\x00\x00\x01\x94\xec\x03\xf6\x15\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9c\
 \x00\x00\x02\x8e\x00\x00\x00\x00\x00\x01\x00\x00\x43\x00\
-\x00\x00\x01\x94\xec\x03\xf6\x12\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9a\
 \x00\x00\x02\xc2\x00\x00\x00\x00\x00\x01\x00\x00\x46\x4c\
-\x00\x00\x01\x94\xec\x03\xf6\x12\
+\x00\x00\x01\x94\xf2\x0a\x5c\x99\
 \x00\x00\x02\xec\x00\x00\x00\x00\x00\x01\x00\x00\x48\xe8\
-\x00\x00\x01\x94\xec\x03\xf6\x12\
+\x00\x00\x01\x94\xf2\x0a\x5c\x99\
 \x00\x00\x03\x16\x00\x00\x00\x00\x00\x01\x00\x00\x4c\x02\
-\x00\x00\x01\x94\xec\x03\xf6\x13\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9b\
 \x00\x00\x03\x3c\x00\x00\x00\x00\x00\x01\x00\x00\x50\x04\
-\x00\x00\x01\x94\xec\x03\xf6\x12\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9a\
 \x00\x00\x03\x7a\x00\x00\x00\x00\x00\x01\x00\x00\x52\xf8\
-\x00\x00\x01\x94\xec\x03\xf6\x15\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9c\
 \x00\x00\x03\x90\x00\x00\x00\x00\x00\x01\x00\x00\x55\x93\
-\x00\x00\x01\x94\xec\x03\xf6\x12\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9a\
 \x00\x00\x03\xb6\x00\x01\x00\x00\x00\x01\x00\x00\x58\x03\
-\x00\x00\x01\x94\xec\x03\xf6\x14\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9c\
 \x00\x00\x03\xcc\x00\x00\x00\x00\x00\x01\x00\x00\x59\xe4\
-\x00\x00\x01\x94\xec\x03\xf6\x14\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9b\
 \x00\x00\x03\xf0\x00\x00\x00\x00\x00\x01\x00\x00\x5d\x25\
-\x00\x00\x01\x94\xec\x03\xf6\x14\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9b\
 \x00\x00\x04\x0a\x00\x00\x00\x00\x00\x01\x00\x00\x60\x10\
-\x00\x00\x01\x94\xec\x03\xf6\x12\
+\x00\x00\x01\x94\xf2\x0a\x5c\x99\
 \x00\x00\x04\x42\x00\x00\x00\x00\x00\x01\x00\x00\x62\x86\
-\x00\x00\x01\x94\xec\x03\xf6\x13\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9b\
 \x00\x00\x04\x5c\x00\x00\x00\x00\x00\x01\x00\x00\x65\xe4\
-\x00\x00\x01\x94\xec\x03\xf6\x14\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9c\
 \x00\x00\x04\x72\x00\x00\x00\x00\x00\x01\x00\x00\x69\x47\
-\x00\x00\x01\x94\xec\x03\xf6\x13\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9b\
 \x00\x00\x04\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x6c\x4e\
-\x00\x00\x01\x94\xec\x03\xf6\x15\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9c\
 \x00\x00\x04\xa0\x00\x00\x00\x00\x00\x01\x00\x00\x70\x94\
-\x00\x00\x01\x94\xec\x03\xf6\x13\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9a\
 \x00\x00\x04\xc6\x00\x00\x00\x00\x00\x01\x00\x00\x73\x0f\
-\x00\x00\x01\x94\xec\x03\xf6\x12\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9a\
 \x00\x00\x04\xf0\x00\x00\x00\x00\x00\x01\x00\x00\x77\x67\
-\x00\x00\x01\x94\xec\x03\xf6\x13\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9a\
 \x00\x00\x05\x08\x00\x00\x00\x00\x00\x01\x00\x00\x7b\x45\
-\x00\x00\x01\x94\xec\x03\xf6\x14\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9b\
 \x00\x00\x05\x30\x00\x00\x00\x00\x00\x01\x00\x00\x7f\x6b\
-\x00\x00\x01\x94\xec\x03\xf6\x12\
+\x00\x00\x01\x94\xf2\x0a\x5c\x99\
 \x00\x00\x05\x58\x00\x00\x00\x00\x00\x01\x00\x00\x82\x1a\
-\x00\x00\x01\x94\xec\x03\xf6\x15\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9d\
 \x00\x00\x05\x6e\x00\x00\x00\x00\x00\x01\x00\x00\x83\x3a\
-\x00\x00\x01\x94\xec\x03\xf6\x14\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9c\
 \x00\x00\x05\x82\x00\x00\x00\x00\x00\x01\x00\x00\x87\x1a\
-\x00\x00\x01\x94\xec\x03\xf6\x13\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9a\
 \x00\x00\x05\xbe\x00\x00\x00\x00\x00\x01\x00\x00\x8a\x5d\
-\x00\x00\x01\x94\xec\x03\xf6\x11\
+\x00\x00\x01\x94\xf2\x0a\x5c\x99\
 \x00\x00\x05\xd8\x00\x00\x00\x00\x00\x01\x00\x00\x8b\xca\
-\x00\x00\x01\x94\xec\x03\xf6\x14\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9c\
 \x00\x00\x06\x06\x00\x00\x00\x00\x00\x01\x00\x00\x8f\x85\
-\x00\x00\x01\x94\xec\x03\xf6\x15\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9c\
 \x00\x00\x06\x36\x00\x00\x00\x00\x00\x01\x00\x00\x8f\xf5\
-\x00\x00\x01\x94\xec\x03\xf6\x15\
+\x00\x00\x01\x94\xf2\x0a\x5c\x9c\
 \x00\x00\x06\x58\x00\x00\x00\x00\x00\x01\x00\x00\x92\xe7\
-\x00\x00\x01\x94\xec\x03\xf6\x12\
+\x00\x00\x01\x94\xf2\x0a\x5c\x99\
 "
 
 qt_version = [int(v) for v in QtCore.qVersion().split('.')]

Index: trunk/Build/source/utils/asymptote/GUI/xasyqtui/__init__.py
===================================================================
--- trunk/Build/source/utils/asymptote/GUI/xasyqtui/__init__.py	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/GUI/xasyqtui/__init__.py	2025-02-11 21:53:03 UTC (rev 73901)

Property changes on: trunk/Build/source/utils/asymptote/GUI/xasyqtui/__init__.py
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Index: trunk/Build/source/utils/asymptote/GUI/xasyversion/__init__.py
===================================================================
--- trunk/Build/source/utils/asymptote/GUI/xasyversion/__init__.py	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/GUI/xasyversion/__init__.py	2025-02-11 21:53:03 UTC (rev 73901)

Property changes on: trunk/Build/source/utils/asymptote/GUI/xasyversion/__init__.py
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Build/source/utils/asymptote/GUI/xasyversion/version.py
===================================================================
--- trunk/Build/source/utils/asymptote/GUI/xasyversion/version.py	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/GUI/xasyversion/version.py	2025-02-11 21:53:03 UTC (rev 73901)
@@ -1 +1 @@
-VERSION="2.98"
+VERSION="2.99"

Modified: trunk/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ProcessIoService.h
===================================================================
--- trunk/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ProcessIoService.h	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ProcessIoService.h	2025-02-11 21:53:03 UTC (rev 73901)
@@ -8,13 +8,13 @@
 {
 public:
     using IOService = boost::asio::io_context;
-    using Work = boost::asio::io_context::work;
+    using Work = boost::asio::executor_work_guard<boost::asio::io_context::executor_type>;
     using WorkPtr = std::unique_ptr<Work>;
 
     ProcessIoService()
     {
 
-        work_ = std::unique_ptr<Work>(new Work(ioService_));
+        work_ = std::unique_ptr<Work>(new Work(ioService_.get_executor()));
         auto temp_thread_ = new std::thread([this] { ioService_.run(); });
         thread_ = std::unique_ptr<std::thread>(temp_thread_);
     }

Modified: trunk/Build/source/utils/asymptote/LspCpp/src/jsonrpc/TcpServer.cpp
===================================================================
--- trunk/Build/source/utils/asymptote/LspCpp/src/jsonrpc/TcpServer.cpp	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/LspCpp/src/jsonrpc/TcpServer.cpp	2025-02-11 21:53:03 UTC (rev 73901)
@@ -190,7 +190,7 @@
     /// The io_context used to perform asynchronous operations.
     boost::asio::io_context io_context_;
 
-    std::shared_ptr<boost::asio::io_context::work> work;
+    std::shared_ptr<boost::asio::executor_work_guard<boost::asio::io_context::executor_type>> work;
 
     std::shared_ptr<tcp_connect_session> _connect_session;
     /// Acceptor used to listen for incoming connections.
@@ -213,7 +213,7 @@
 
 {
 
-    d_ptr->work = std::make_shared<boost::asio::io_context::work>(d_ptr->io_context_);
+    d_ptr->work = std::make_shared<boost::asio::executor_work_guard<boost::asio::io_context::executor_type>>(d_ptr->io_context_.get_executor());
 
     // Open the acceptor with the option to reuse the address (i.e. SO_REUSEADDR).
     boost::asio::ip::tcp::resolver resolver(d_ptr->io_context_);

Modified: trunk/Build/source/utils/asymptote/LspCpp/src/jsonrpc/WebSocketServer.cpp
===================================================================
--- trunk/Build/source/utils/asymptote/LspCpp/src/jsonrpc/WebSocketServer.cpp	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/LspCpp/src/jsonrpc/WebSocketServer.cpp	2025-02-11 21:53:03 UTC (rev 73901)
@@ -113,7 +113,7 @@
     /// The io_context used to perform asynchronous operations.
     boost::asio::io_context io_context_;
 
-    std::shared_ptr<boost::asio::io_context::work> work;
+    std::shared_ptr<boost::asio::executor_work_guard<boost::asio::io_context::executor_type>> work;
 
     /// Acceptor used to listen for incoming connections.
     boost::asio::ip::tcp::acceptor acceptor_;
@@ -217,7 +217,7 @@
 
 {
 
-    d_ptr->work = std::make_shared<boost::asio::io_context::work>(d_ptr->io_context_);
+    d_ptr->work = std::make_shared<boost::asio::executor_work_guard<boost::asio::io_context::executor_type>>(d_ptr->io_context_.get_executor());
 
     // Open the acceptor with the option to reuse the address (i.e. SO_REUSEADDR).
     boost::asio::ip::tcp::resolver resolver(d_ptr->io_context_);

Modified: trunk/Build/source/utils/asymptote/LspCpp/third_party/uri/CMakeFiles/CMakeDirectoryInformation.cmake
===================================================================
--- trunk/Build/source/utils/asymptote/LspCpp/third_party/uri/CMakeFiles/CMakeDirectoryInformation.cmake	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/LspCpp/third_party/uri/CMakeFiles/CMakeDirectoryInformation.cmake	2025-02-11 21:53:03 UTC (rev 73901)
@@ -2,8 +2,8 @@
 # Generated by "Unix Makefiles" Generator, CMake Version 3.30
 
 # Relative path conversion top directories.
-set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/usr/local/src/asymptote-2.98/LspCpp")
-set(CMAKE_RELATIVE_PATH_TOP_BINARY "/usr/local/src/asymptote-2.98/LspCpp")
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/usr/local/src/asymptote-2.99/LspCpp")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/usr/local/src/asymptote-2.99/LspCpp")
 
 # Force unix paths in dependencies.
 set(CMAKE_FORCE_UNIX_PATHS 1)

Modified: trunk/Build/source/utils/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/build.make
===================================================================
--- trunk/Build/source/utils/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/build.make	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/build.make	2025-02-11 21:53:03 UTC (rev 73901)
@@ -56,10 +56,10 @@
 EQUALS = =
 
 # The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /usr/local/src/asymptote-2.98/LspCpp
+CMAKE_SOURCE_DIR = /usr/local/src/asymptote-2.99/LspCpp
 
 # The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /usr/local/src/asymptote-2.98/LspCpp
+CMAKE_BINARY_DIR = /usr/local/src/asymptote-2.99/LspCpp
 
 # Utility rule file for doc.
 
@@ -70,8 +70,8 @@
 include third_party/uri/CMakeFiles/doc.dir/progress.make
 
 third_party/uri/CMakeFiles/doc:
-	@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --blue --bold --progress-dir=/usr/local/src/asymptote-2.98/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Generating API documentation with Doxygen"
-	cd /usr/local/src/asymptote-2.98/LspCpp/third_party/uri && /bin/doxygen /usr/local/src/asymptote-2.98/LspCpp/third_party/uri/Doxyfile
+	@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --blue --bold --progress-dir=/usr/local/src/asymptote-2.99/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Generating API documentation with Doxygen"
+	cd /usr/local/src/asymptote-2.99/LspCpp/third_party/uri && /bin/doxygen /usr/local/src/asymptote-2.99/LspCpp/third_party/uri/Doxyfile
 
 doc: third_party/uri/CMakeFiles/doc
 doc: third_party/uri/CMakeFiles/doc.dir/build.make
@@ -82,10 +82,10 @@
 .PHONY : third_party/uri/CMakeFiles/doc.dir/build
 
 third_party/uri/CMakeFiles/doc.dir/clean:
-	cd /usr/local/src/asymptote-2.98/LspCpp/third_party/uri && $(CMAKE_COMMAND) -P CMakeFiles/doc.dir/cmake_clean.cmake
+	cd /usr/local/src/asymptote-2.99/LspCpp/third_party/uri && $(CMAKE_COMMAND) -P CMakeFiles/doc.dir/cmake_clean.cmake
 .PHONY : third_party/uri/CMakeFiles/doc.dir/clean
 
 third_party/uri/CMakeFiles/doc.dir/depend:
-	cd /usr/local/src/asymptote-2.98/LspCpp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /usr/local/src/asymptote-2.98/LspCpp /usr/local/src/asymptote-2.98/LspCpp/third_party/uri /usr/local/src/asymptote-2.98/LspCpp /usr/local/src/asymptote-2.98/LspCpp/third_party/uri /usr/local/src/asymptote-2.98/LspCpp/third_party/uri/CMakeFiles/doc.dir/DependInfo.cmake "--color=$(COLOR)"
+	cd /usr/local/src/asymptote-2.99/LspCpp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /usr/local/src/asymptote-2.99/LspCpp /usr/local/src/asymptote-2.99/LspCpp/third_party/uri /usr/local/src/asymptote-2.99/LspCpp /usr/local/src/asymptote-2.99/LspCpp/third_party/uri /usr/local/src/asymptote-2.99/LspCpp/third_party/uri/CMakeFiles/doc.dir/DependInfo.cmake "--color=$(COLOR)"
 .PHONY : third_party/uri/CMakeFiles/doc.dir/depend
 

Modified: trunk/Build/source/utils/asymptote/LspCpp/third_party/uri/Doxyfile
===================================================================
--- trunk/Build/source/utils/asymptote/LspCpp/third_party/uri/Doxyfile	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/LspCpp/third_party/uri/Doxyfile	2025-02-11 21:53:03 UTC (rev 73901)
@@ -128,7 +128,7 @@
 # If left blank the directory from which doxygen is run is used as the
 # path to strip.
 
-STRIP_FROM_PATH        = /usr/local/src/asymptote-2.98/LspCpp/third_party/uri/include/
+STRIP_FROM_PATH        = /usr/local/src/asymptote-2.99/LspCpp/third_party/uri/include/
 
 # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
 # the path mentioned in the documentation of a class, which tells
@@ -626,7 +626,7 @@
 # directories like "/usr/src/myproject". Separate the files or directories
 # with spaces.
 
-INPUT                  = /usr/local/src/asymptote-2.98/LspCpp/third_party/uri/include
+INPUT                  = /usr/local/src/asymptote-2.99/LspCpp/third_party/uri/include
 
 # This tag can be used to specify the character encoding of the source files
 # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
@@ -658,7 +658,7 @@
 # Note that relative paths are relative to the directory from which doxygen is
 # run.
 
-EXCLUDE                = /usr/local/src/asymptote-2.98/LspCpp/third_party/uri/include/network/uri/detail
+EXCLUDE                = /usr/local/src/asymptote-2.99/LspCpp/third_party/uri/include/network/uri/detail
 
 # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
 # directories that are symbolic links (a Unix file system feature) are excluded
@@ -821,7 +821,7 @@
 # The IGNORE_PREFIX tag can be used to specify one or more prefixes that
 # should be ignored while generating the index headers.
 
-IGNORE_PREFIX          = /usr/local/src/asymptote-2.98/LspCpp/third_party/uri/uri/src/
+IGNORE_PREFIX          = /usr/local/src/asymptote-2.99/LspCpp/third_party/uri/uri/src/
 
 #---------------------------------------------------------------------------
 # configuration options related to the HTML output

Modified: trunk/Build/source/utils/asymptote/LspCpp/third_party/uri/src/libnetwork-uri.a
===================================================================
(Binary files differ)

Modified: trunk/Build/source/utils/asymptote/Makefile.in
===================================================================
--- trunk/Build/source/utils/asymptote/Makefile.in	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/Makefile.in	2025-02-11 21:53:03 UTC (rev 73901)
@@ -381,6 +381,7 @@
 	-rm -rf GUI/configs/__pycache__
 	-$(MAKE) -C $(GC) distclean
 	-cd $(GC) && rm -rf libatomic_ops .deps cord/.deps cord/tests/.deps extra/.deps tests/.deps
+
 	-rm -f Makefile config.h config.log config.status errors.temp
 	-rm -rf LspCpp/CMakeCache.txt
 	cd doc && $(MAKE) clean
@@ -391,10 +392,11 @@
 
 cleanest: FORCE maintainer-clean
 maintainer-clean: FORCE distclean
-	-rm -f configure config.h.in $(DIST)
-	-rm -rf autom4te.cache
+	-rm -f configure config.h.in
+	-rm -f ltmain.sh compile missing depcomp test-driver
+	-rm -rf $(GC)/m4/l*.m4
 	-cd GUI && $(PYTHON) buildtool.py clean
-	-rm -rf GUI/pyUIClass
+	-rm -rf autom4te.cache $(DIST)
 	-rm -rf vcpkg_installed
 
 test: asy FORCE

Modified: trunk/Build/source/utils/asymptote/ReleaseNotes
===================================================================
--- trunk/Build/source/utils/asymptote/ReleaseNotes	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/ReleaseNotes	2025-02-11 21:53:03 UTC (rev 73901)
@@ -1,3 +1,10 @@
+Release Notes for Version 2.99
+
+The libtool dependence of configure was removed.
+Dependencies of gc builds are no longer tracked.
+The latest boost library is supported.
+Further build issues were fixed.
+
 Release Notes for Version 2.98
 
 Prebuilt Xasy support files are distributed again.

Modified: trunk/Build/source/utils/asymptote/asy-keywords.el
===================================================================
--- trunk/Build/source/utils/asymptote/asy-keywords.el	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/asy-keywords.el	2025-02-11 21:53:03 UTC (rev 73901)
@@ -2,7 +2,7 @@
 ;; This file is automatically generated by asy-list.py.
 ;; Changes will be overwritten.
 ;;
-(defvar asy-keywords-version "2.98")
+(defvar asy-keywords-version "2.99")
 
 (defvar asy-keyword-name '(
 and controls tension atleast curl if else while for do return break continue struct typedef using new access import unravel from include quote static autounravel public private restricted this explicit true false null cycle newframe operator ))

Modified: trunk/Build/source/utils/asymptote/asy.list
===================================================================
--- trunk/Build/source/utils/asymptote/asy.list	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/asy.list	2025-02-11 21:53:03 UTC (rev 73901)
@@ -37,6 +37,7 @@
 pen darkgreen;
 string verbatim(string s);
 pen heavygray;
+coord[] maxcoords(coord[] in, bool operator <=(coord, coord));
 pen darkred;
 pair E;
 plain_bounds plain_bounds;
@@ -79,7 +80,6 @@
 pen Dotted;
 pen Dotted(pen p=<default>);
 string math(string s);
-coord[] maxcoords(coord[] in, bool operator <=(coord, coord));
 void drawarrow(frame f, arrowhead arrowhead=<default>, path g, pen p=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, position position=<default>, bool forwards=<default>, marginT margin(path, pen)=<default>, bool center=<default>);
 transform fixedscaling(picture pic=<default>, pair min, pair max, pen p=<default>, bool warn=<default>);
 pen Symbol(string series=<default>, string shape=<default>);
@@ -293,6 +293,7 @@
 marker[] concat(... marker[][]);
 Label[] concat(... Label[][]);
 bool3[] concat(... bool3[][]);
+coord[] concat(... coord[][]);
 pair[] concat(... pair[][]);
 pen[] concat(... pen[][]);
 Legend[] concat(... Legend[][]);
@@ -299,7 +300,6 @@
 picture[] concat(... picture[][]);
 path[] concat(... path[][]);
 int[] concat(... int[][]);
-coord[] concat(... coord[][]);
 object[] concat(... object[][]);
 void()()[] concat(... void()()[][]);
 string[] concat(... string[][]);
@@ -318,9 +318,6 @@
 node node(void d(frame f, transform t, transform T, pair lb, pair rt), string key=<default>);
 marginT BeginMargin(path, pen);
 path buildcycle(... path[] p);
-real arcarrowsize(pen p=<default>);
-real calculateScaling(string dir, coord[] m, coord[] M, real size, bool warn=<default>);
-real calculateScaling(string dir, coord[] coords, real size, bool warn=<default>);
 void activatequote(picture pic=<default>);
 int undefined;
 pen roundcap;
@@ -338,6 +335,9 @@
 bool CCW;
 void usetypescript(string s, string encoding=<default>);
 path randompath(int n, bool cumulate=<default>, guide join(... guide[])=<default>);
+real arcarrowsize(pen p=<default>);
+real calculateScaling(string dir, coord[] coords, real size, bool warn=<default>);
+real calculateScaling(string dir, coord[] m, coord[] M, real size, bool warn=<default>);
 void()()[] array(int n, void value()(), int depth=<default>);
 bool[] array(int n, bool value, int depth=<default>);
 string[] array(int n, string value, int depth=<default>);
@@ -356,8 +356,8 @@
 string[][] array(int n, string[] value, int depth=<default>);
 pair[] array(int n, pair value, int depth=<default>);
 bool3[] array(int n, bool3 value, int depth=<default>);
+coord[] array(int n, coord value, int depth=<default>);
 guide[] array(int n, guide value, int depth=<default>);
-coord[] array(int n, coord value, int depth=<default>);
 object[] array(int n, object value, int depth=<default>);
 pen[] array(int n, pen value, int depth=<default>);
 string[] array(string s);
@@ -678,9 +678,9 @@
 string[][] sequence(string[] f(int), int n);
 pair[] sequence(pair f(int), int n);
 bool3[] sequence(bool3 f(int), int n);
+coord[] sequence(coord f(int), int n);
 int[] sequence(int n, int m, int skip);
 guide[] sequence(guide f(int), int n);
-coord[] sequence(coord f(int), int n);
 object[] sequence(object f(int), int n);
 pen[] sequence(pen f(int), int n);
 void()()[] sequence(void f()()(int), int n);
@@ -1059,6 +1059,7 @@
 bool alias(string[][] a, string[][] b);
 bool alias(bool3 a, bool3 b);
 bool alias(marginT a, marginT b);
+bool alias(coord a, coord b);
 bool alias(transformation a, transformation b);
 bool alias(projection a, projection b);
 bool alias(coords3 a, coords3 b);
@@ -1088,16 +1089,15 @@
 bool alias(arrowhead a, arrowhead b);
 bool alias(triple[] a, triple[] b);
 bool alias(hsv a, hsv b);
-bool alias(coord a, coord b);
 bool alias(scaleT a, scaleT b);
 bool alias(object a, object b);
 bool alias(processtime a, processtime b);
 bool alias(real[] a, real[] b);
 bool alias(bool3[] a, bool3[] b);
+bool alias(coord[] a, coord[] b);
 bool alias(pen[] a, pen[] b);
 bool alias(Legend[] a, Legend[] b);
 bool alias(picture[] a, picture[] b);
-bool alias(coord[] a, coord[] b);
 bool alias(object[] a, object[] b);
 bool alias(coords2 a, coords2 b);
 bool alias(node a, node b);
@@ -1129,6 +1129,7 @@
 triple[] map(triple f(triple), triple[] a);
 pen[] map(pen f(pen), pen[] a);
 bool3[] map(bool3 f(bool3), bool3[] a);
+coord[] map(coord f(coord), coord[] a);
 pair[] map(pair f(pair), pair[] a);
 string[] map(string f(string), string[] a);
 marker[] map(marker f(marker), marker[] a);
@@ -1136,7 +1137,6 @@
 void()()[] map(void f()()(void()()), void()()[] a);
 pair[][] map(pair[] f(pair[]), pair[][] a);
 real[] map(real f(real), real[] a);
-coord[] map(coord f(coord), coord[] a);
 object[] map(object f(object), object[] a);
 int[] map(int f(int), int[] a);
 string[][] map(string[] f(string[]), string[][] a);
@@ -1271,7 +1271,6 @@
 int search(guide[] a, guide key, bool less(guide, guide));
 int search(pair[] a, pair key, bool less(pair, pair));
 int search(frame[] a, frame key, bool less(frame, frame));
-int search(coord[] a, coord key, bool less(coord, coord));
 int search(object[] a, object key, bool less(object, object));
 int search(int[] a, int key, bool less(int, int));
 int search(string[] a, string key, bool less(string, string));
@@ -1278,6 +1277,7 @@
 int search(path[] a, path key, bool less(path, path));
 int search(pen[] a, pen key, bool less(pen, pen));
 int search(bool3[] a, bool3 key, bool less(bool3, bool3));
+int search(coord[] a, coord key, bool less(coord, coord));
 int search(bool[] a, bool key, bool less(bool, bool));
 int search(triple[] a, triple key, bool less(triple, triple));
 int[] sort(int[] a);
@@ -1300,9 +1300,9 @@
 int[] sort(int[] a, bool less(int, int), bool stable=<default>);
 string[][] sort(string[][] a, bool less(string[], string[]), bool stable=<default>);
 bool3[] sort(bool3[] a, bool less(bool3, bool3), bool stable=<default>);
+coord[] sort(coord[] a, bool less(coord, coord), bool stable=<default>);
 real[] sort(real[] a, bool less(real, real), bool stable=<default>);
 string[] sort(string[] a, bool less(string, string), bool stable=<default>);
-coord[] sort(coord[] a, bool less(coord, coord), bool stable=<default>);
 object[] sort(object[] a, bool less(object, object), bool stable=<default>);
 pair[] sort(pair[] a, bool less(pair, pair), bool stable=<default>);
 real[][] sort(real[][] a, bool less(real[], real[]), bool stable=<default>);
@@ -1446,10 +1446,10 @@
 void()()[] copy(void()()[] a, int depth=<default>);
 int[] copy(int[] a, int depth=<default>);
 string[][] copy(string[][] a, int depth=<default>);
-coord[] copy(coord[] a, int depth=<default>);
 object[] copy(object[] a, int depth=<default>);
 frame[] copy(frame[] a, int depth=<default>);
 bool3[] copy(bool3[] a, int depth=<default>);
+coord[] copy(coord[] a, int depth=<default>);
 pair[] copy(pair[] a, int depth=<default>);
 marker[] copy(marker[] a, int depth=<default>);
 Label[] copy(Label[] a, int depth=<default>);
@@ -1671,6 +1671,7 @@
 bool operator !=(path3 a, path3 b);
 bool operator !=(bool3 a, bool3 b);
 bool operator !=(marginT a, marginT b);
+bool operator !=(coord a, coord b);
 bool operator !=(transformation a, transformation b);
 bool operator !=(projection a, projection b);
 bool operator !=(coords3 a, coords3 b);
@@ -1694,7 +1695,6 @@
 bool operator !=(pairOrTriple a, pairOrTriple b);
 bool operator !=(arrowhead a, arrowhead b);
 bool operator !=(hsv a, hsv b);
-bool operator !=(coord a, coord b);
 bool operator !=(scaleT a, scaleT b);
 bool operator !=(object a, object b);
 bool operator !=(processtime a, processtime b);
@@ -1756,7 +1756,6 @@
 bool operator ==(pairOrTriple a, pairOrTriple b);
 bool operator ==(arrowhead a, arrowhead b);
 bool operator ==(hsv a, hsv b);
-bool operator ==(coord a, coord b);
 bool operator ==(scaleT a, scaleT b);
 bool operator ==(object a, object b);
 bool operator ==(processtime a, processtime b);
@@ -1766,6 +1765,7 @@
 bool operator ==(marker a, marker b);
 bool operator ==(bool3 a, bool3 b);
 bool operator ==(marginT a, marginT b);
+bool operator ==(coord a, coord b);
 bool operator ==(transformation a, transformation b);
 bool operator ==(projection a, projection b);
 bool operator ==(coords3 a, coords3 b);
@@ -1949,6 +1949,7 @@
 realschur operator init();
 bool3 operator init();
 marginT operator init();
+coord operator init();
 transformation operator init();
 projection operator init();
 coords3 operator init();
@@ -1959,7 +1960,6 @@
 Label operator init();
 marker operator init();
 hsv operator init();
-coord operator init();
 scaleT operator init();
 object operator init();
 processtime operator init();
@@ -1985,31 +1985,31 @@
 path section(path p, real t1, real t2, bool loop=<default>);
 path removeDuplicates(path p);
 void connect(path[] paths, path[] result, path[] patch);
+real duplicateFuzz;
 int countIntersections(path[] p, pair start, pair end);
 bool checkSegment(path g, pair p, pair q);
 path uncycle(path p, real t);
 path subdivide(path p);
 real fuzz;
-real duplicateFuzz;
 key nil;
 real minDistDefault;
 binarytreeNode binarytreeNode(int key);
-binarytreeNode operator init();
 real nodeMarginDefault;
 key operator cast(int n);
 int operator cast(key k);
 int[] operator cast(key[] k);
 binarytree binarytree(... key[] keys);
-binarytree searchtree(... int[] keys);
 key key(int n, bool active=<default>);
 object draw(picture pic=<default>, binarytreeNode node, pair pos, int height, real minDist, real levelDist, real nodeDiameter, pen p=<default>, bool condensed=<default>);
 void draw(picture pic=<default>, binarytree tree, real minDist=<default>, real nodeMargin=<default>, pen p=<default>, bool condensed=<default>);
+binarytreeNode operator init();
+binarytree searchtree(... int[] keys);
 real epsilon;
 line intersection(face a, face b);
+void add(picture pic=<default>, face[] faces, projection P=<default>);
 picture operator cast(face f);
 face operator cast(path3 p);
 splitface split(face a, face cut, projection P);
-void add(picture pic=<default>, face[] faces, projection P=<default>);
 list_data viridis;
 list_data twilight;
 seg_data wistia;
@@ -2101,8 +2101,8 @@
 void addseg(pair[][] gds, segment seg);
 void draw(picture pic=<default>, Label[] L=<default>, guide[][] g, pen[] p);
 void draw(picture pic=<default>, Label[] L=<default>, guide[][] g, pen p=<default>);
+void fill(picture pic=<default>, guide[][] g, pen[][] palette);
 pen[] extend(pen[] palette, pen below, pen above);
-void fill(picture pic=<default>, guide[][] g, pen[][] palette);
 void drawAll(TreeNode node, frame f);
 real layout(int level, TreeNode node);
 real treeMinNodeWidth;
@@ -2139,17 +2139,19 @@
 path photon(path p, real amp=<default>, real width=<default>);
 void drawVertexBoxX(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>, bool erasebg=<default>, pen bgpen=<default>);
 path gluon(path p, real amp=<default>, real width=<default>);
-bool currentarrow(picture, path, pen, marginT(path, pen));
+string includegraphicscommand;
+real linemargin;
 void drawDoubleLine(picture pic=<default>, path p, pen fgpen=<default>, real dlspacing=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool erasebg=<default>, pen bgpen=<default>, real vertexangle=<default>, real margin=<default>);
 pen photonpen;
 pen ghostpen;
-bool overpaint;
-real momarrowsize(pen p=<default>);
 real momarrowoffset;
 real doublelinespacing;
+bool currentmomarrow(picture, path, pen, marginT(path, pen));
+real momarrowsize(pen p=<default>);
+bool overpaint;
 real gluonratio;
 pen vertexpen;
-bool currentmomarrow(picture, path, pen, marginT(path, pen));
+bool currentarrow(picture, path, pen, marginT(path, pen));
 real bigvertexsize;
 void do_overpaint(picture pic, path p, pen bgpen, real halfwidth, real vertexangle);
 real vertexsize;
@@ -2156,8 +2158,6 @@
 bool YAlign;
 pen momarrowpen;
 pen bigvertexpen;
-string includegraphicscommand;
-real linemargin;
 real gluonamplitude;
 real photonratio;
 real photonamplitude;
@@ -2425,10 +2425,9 @@
 real EPS;
 real binomial(real n, real k);
 real Infinity;
-pair coordinates(point M);
 void markangle(picture pic=<default>, Label L=<default>, int n=<default>, real radius=<default>, real space=<default>, explicit line l1, explicit line l2, explicit pair align=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, pen p=<default>, filltype filltype=<default>, marginT margin(path, pen)=<default>, marker marker=<default>);
 void markangle(picture pic=<default>, Label L=<default>, int n=<default>, real radius=<default>, real space=<default>, explicit line l1, explicit line l2, explicit vector align, bool arrow(picture, path, pen, marginT(path, pen))=<default>, pen p=<default>, filltype filltype=<default>, marginT margin(path, pen)=<default>, marker marker=<default>);
-transform yscaleO(real x);
+pair coordinates(point M);
 triangle triangleAbc(real alpha, real b, real c, real angle=<default>, point A=<default>);
 int angularsystem;
 transform scale(real k, point M);
@@ -2440,10 +2439,6 @@
 bqe changecoordsys(coordsys R, bqe bqe);
 conic changecoordsys(coordsys R, conic co);
 int conicnodesfactor;
-bqe equation(ellipse el);
-bqe equation(parabola p);
-bqe equation(hyperbola h);
-bqe equation(explicit conic co);
 point isotomicconjugate(triangle t, point M);
 point operator +(explicit point P1, explicit point P2);
 point operator +(explicit point P1, explicit pair p2);
@@ -2534,8 +2529,6 @@
 point[] intersectionpoints(arc a1, arc a2);
 point[] intersectionpoints(line l, arc a);
 point[] intersectionpoints(arc a, line l);
-point midpoint(segment s);
-point midpoint(side side);
 pair attract(pair m, path g, real fuzz=<default>);
 point attract(point M, path g, real fuzz=<default>);
 bool finite(explicit point p);
@@ -2542,17 +2535,27 @@
 transform vprojection(line l, bool safe=<default>);
 triangle medial(triangle t);
 int[] numarray;
-path arctopath(arc a, int n);
 bool byfoci;
-ellipse ellipse(point F1, point F2, real a);
-ellipse ellipse(point F1, point F2, point M);
-ellipse ellipse(point C, real a, real b, real angle=<default>);
-ellipse ellipse(bqe bqe);
-ellipse ellipse(point M1, point M2, point M3, point M4, point M5);
+void label(picture pic=<default>, Label L, explicit mass M, align align=<default>, string format=<default>, pen p=<default>, filltype filltype=<default>);
+void label(picture pic=<default>, Label L, vertex V, pair align=<default>, real alignFactor=<default>, pen p=<default>, filltype filltype=<default>);
+void label(picture pic=<default>, Label LA=<default>, Label LB=<default>, Label LC=<default>, triangle t, real alignAngle=<default>, real alignFactor=<default>, pen p=<default>, filltype filltype=<default>);
+point midpoint(segment s);
+point midpoint(side side);
+line isotomic(vertex V, point M);
+point isotomic(side side, point M);
+triangle isotomic(triangle t, point M);
+int hyperbolanodesnumberfactor;
+int ellipsenodesnumber(real a, real b);
+int ellipsenodesnumber(real a, real b, real angle1, real angle2, bool dir);
 line reverse(line l);
 arc reverse(arc a);
-bool simeq(point A, point B, real fuzz=<default>);
-bool simeq(point a, real b, real fuzz=<default>);
+void dot(picture pic=<default>, Label L, explicit point Z, align align=<default>, string format=<default>, pen p=<default>);
+real dot(point A, point B);
+real dot(point A, explicit pair B);
+real dot(explicit pair A, point B);
+void dot(picture pic=<default>, Label L, explicit mass M, align align=<default>, string format=<default>, pen p=<default>);
+void dot(picture pic=<default>, triangle t, pen p=<default>);
+real sharpdegrees(line l1, line l2);
 real arclength(circle c);
 real arclength(ellipse el);
 real arclength(ellipse el, real angle1, real angle2, bool direction=<default>, path polarconicroutine(conic co, real angle1, real angle2, int n, bool direction)=<default>);
@@ -2568,9 +2571,47 @@
 void write(explicit segment s);
 void write(trilinear tri);
 path arcfromfocus(conic co, real angle1, real angle2, int n=<default>, bool direction=<default>);
-bqe bqe(coordsys R=<default>, real a, real b, real c, real d, real e, real f);
-bqe bqe(point M1, point M2, point M3, point M4, point M5);
-bool onpath(picture pic=<default>, path g, point M, pen p=<default>);
+void perpendicularmark(picture pic=<default>, point z, explicit pair align, explicit pair dir=<default>, real size=<default>, pen p=<default>, marginT margin(path, pen)=<default>, filltype filltype=<default>);
+void perpendicularmark(picture pic=<default>, point z, vector align, vector dir=<default>, real size=<default>, pen p=<default>, marginT margin(path, pen)=<default>, filltype filltype=<default>);
+void perpendicularmark(picture pic=<default>, point z, explicit pair align, path g, real size=<default>, pen p=<default>, marginT margin(path, pen)=<default>, filltype filltype=<default>);
+void perpendicularmark(picture pic=<default>, point z, vector align, path g, real size=<default>, pen p=<default>, marginT margin(path, pen)=<default>, filltype filltype=<default>);
+void perpendicularmark(picture pic=<default>, line l1, line l2, real size=<default>, pen p=<default>, int quarter=<default>, marginT margin(path, pen)=<default>, filltype filltype=<default>);
+string defaultmassformat;
+point relpoint(line l, real x);
+point relpoint(explicit circle c, real x);
+point relpoint(explicit ellipse el, real x);
+point relpoint(explicit parabola p, real x);
+point relpoint(explicit hyperbola h, real x);
+point relpoint(explicit conic co, explicit real x);
+point relpoint(explicit conic co, explicit int x);
+point relpoint(arc a, real x);
+arc arcsubtended(point A, point B, real angle);
+line[] operator ^^(line l1, line l2);
+line[] operator ^^(line l1, line[] l2);
+line[] operator ^^(line[] l2, line l1);
+line[] operator ^^(line[] l1, line[] l2);
+triangle[] operator ^^(triangle[] t1, triangle t2);
+triangle[] operator ^^(... triangle[] t);
+string conictype(bqe bqe);
+void fill(picture pic=<default>, circle c, pen p=<default>);
+void fill(picture pic=<default>, ellipse el, pen p=<default>);
+void fill(picture pic=<default>, triangle t, pen p=<default>);
+void fill(picture pic=<default>, triangle[] ts, pen p=<default>);
+segment segment(point A, point B);
+segment segment(line l);
+segment segment(explicit side side);
+int circlenodesnumber(real r);
+int circlenodesnumber(real r, real angle1, real angle2);
+line[] tangents(circle c, point M);
+line[] tangents(ellipse el, point M);
+line[] tangents(parabola p, point M);
+line[] tangents(hyperbola h, point M);
+bool sameside(point M, point N, point O);
+bool sameside(point M, point P, line l);
+point[] sameside(point M, line l1, line l2);
+path arctopath(arc a, int n);
+bool simeq(point A, point B, real fuzz=<default>);
+bool simeq(point a, real b, real fuzz=<default>);
 void addMargins(picture pic=<default>, real lmargin=<default>, real bmargin=<default>, real rmargin=<default>, real tmargin=<default>, bool rigid=<default>, bool allObject=<default>);
 point point(coordsys R, pair p, real m=<default>);
 point point(explicit pair p, real m);
@@ -2602,30 +2643,21 @@
 point point(trilinear tri);
 point point(circle c, point M);
 point point(circle c, explicit vector v);
-point relpoint(line l, real x);
-point relpoint(explicit circle c, real x);
-point relpoint(explicit ellipse el, real x);
-point relpoint(explicit parabola p, real x);
-point relpoint(explicit hyperbola h, real x);
-point relpoint(explicit conic co, explicit real x);
-point relpoint(explicit conic co, explicit int x);
-point relpoint(arc a, real x);
-arc arcsubtended(point A, point B, real angle);
-line[] operator ^^(line l1, line l2);
-line[] operator ^^(line l1, line[] l2);
-line[] operator ^^(line[] l2, line l1);
-line[] operator ^^(line[] l1, line[] l2);
-triangle[] operator ^^(triangle[] t1, triangle t2);
-triangle[] operator ^^(... triangle[] t);
-int circlenodesnumber(real r);
-int circlenodesnumber(real r, real angle1, real angle2);
-line[] tangents(circle c, point M);
-line[] tangents(ellipse el, point M);
-line[] tangents(parabola p, point M);
-line[] tangents(hyperbola h, point M);
-bool sameside(point M, point N, point O);
-bool sameside(point M, point P, line l);
-point[] sameside(point M, line l1, line l2);
+triangle triangle(line l1, line l2, line l3);
+void draw(picture pic=<default>, Label L=<default>, line l, bool dirA=<default>, bool dirB=<default>, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, Label legend=<default>, marker marker=<default>, path pathModifier(path)=<default>);
+void draw(picture pic=<default>, Label[] L=<default>, line[] l, align align=<default>, pen[] p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, Label[] legend=<default>, marker marker=<default>, path pathModifier(path)=<default>);
+void draw(picture pic=<default>, Label[] L=<default>, line[] l, align align=<default>, pen p, bool arrow(picture, path, pen, marginT(path, pen))=<default>, Label[] legend=<default>, marker marker=<default>, path pathModifier(path)=<default>);
+void draw(picture pic=<default>, Label L=<default>, circle c, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
+void draw(picture pic=<default>, Label L=<default>, ellipse el, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
+void draw(picture pic=<default>, Label L=<default>, parabola parabola, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
+void draw(picture pic=<default>, Label L=<default>, hyperbola h, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
+void draw(picture pic=<default>, Label L=<default>, explicit conic co, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
+void draw(picture pic=<default>, Label L=<default>, arc a, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
+void draw(picture pic=<default>, triangle t, pen p=<default>, marker marker=<default>);
+void draw(picture pic=<default>, triangle[] ts, pen p=<default>, marker marker=<default>);
+bool onpath(picture pic=<default>, path g, point M, pen p=<default>);
+bqe bqe(coordsys R=<default>, real a, real b, real c, real d, real e, real f);
+bqe bqe(point M1, point M2, point M3, point M4, point M5);
 pair operator *(coordsys R, pair p);
 path operator *(coordsys R, path g);
 coordsys operator *(transform t, coordsys R);
@@ -2713,6 +2745,8 @@
 point operator cast(trilinear tri);
 circle operator cast(inversion i);
 inversion operator cast(circle c);
+bool inside(ellipse el, point M);
+bool inside(parabola p, point M);
 real[] realquarticroots(real a, real b, real c, real d, real e);
 path square(pair z1, pair z2);
 real epsgeo;
@@ -2719,30 +2753,7 @@
 bool degenerate(conic c);
 bool degenerate(circle c);
 bool degenerate(ellipse el);
-triangle triangle(line l1, line l2, line l3);
-void draw(picture pic=<default>, Label L=<default>, line l, bool dirA=<default>, bool dirB=<default>, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, Label legend=<default>, marker marker=<default>, path pathModifier(path)=<default>);
-void draw(picture pic=<default>, Label[] L=<default>, line[] l, align align=<default>, pen[] p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, Label[] legend=<default>, marker marker=<default>, path pathModifier(path)=<default>);
-void draw(picture pic=<default>, Label[] L=<default>, line[] l, align align=<default>, pen p, bool arrow(picture, path, pen, marginT(path, pen))=<default>, Label[] legend=<default>, marker marker=<default>, path pathModifier(path)=<default>);
-void draw(picture pic=<default>, Label L=<default>, circle c, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
-void draw(picture pic=<default>, Label L=<default>, ellipse el, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
-void draw(picture pic=<default>, Label L=<default>, parabola parabola, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
-void draw(picture pic=<default>, Label L=<default>, hyperbola h, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
-void draw(picture pic=<default>, Label L=<default>, explicit conic co, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
-void draw(picture pic=<default>, Label L=<default>, arc a, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
-void draw(picture pic=<default>, triangle t, pen p=<default>, marker marker=<default>);
-void draw(picture pic=<default>, triangle[] ts, pen p=<default>, marker marker=<default>);
-line isotomic(vertex V, point M);
-point isotomic(side side, point M);
-triangle isotomic(triangle t, point M);
-int hyperbolanodesnumberfactor;
-int ellipsenodesnumber(real a, real b);
-int ellipsenodesnumber(real a, real b, real angle1, real angle2, bool dir);
-void perpendicularmark(picture pic=<default>, point z, explicit pair align, explicit pair dir=<default>, real size=<default>, pen p=<default>, marginT margin(path, pen)=<default>, filltype filltype=<default>);
-void perpendicularmark(picture pic=<default>, point z, vector align, vector dir=<default>, real size=<default>, pen p=<default>, marginT margin(path, pen)=<default>, filltype filltype=<default>);
-void perpendicularmark(picture pic=<default>, point z, explicit pair align, path g, real size=<default>, pen p=<default>, marginT margin(path, pen)=<default>, filltype filltype=<default>);
-void perpendicularmark(picture pic=<default>, point z, vector align, path g, real size=<default>, pen p=<default>, marginT margin(path, pen)=<default>, filltype filltype=<default>);
-void perpendicularmark(picture pic=<default>, line l1, line l2, real size=<default>, pen p=<default>, int quarter=<default>, marginT margin(path, pen)=<default>, filltype filltype=<default>);
-string defaultmassformat;
+transform yscaleO(real x);
 pair operator /(pair p, coordsys R);
 point operator /(explicit point P, real x);
 point operator /(real x, explicit point P);
@@ -2762,25 +2773,18 @@
 circle circumcircle(point A, point B, point C);
 circle circumcircle(triangle t);
 real elle(real phi, real k);
-string conictype(bqe bqe);
-void fill(picture pic=<default>, circle c, pen p=<default>);
-void fill(picture pic=<default>, ellipse el, pen p=<default>);
-void fill(picture pic=<default>, triangle t, pen p=<default>);
-void fill(picture pic=<default>, triangle[] ts, pen p=<default>);
-segment segment(point A, point B);
-segment segment(line l);
-segment segment(explicit side side);
 void filldraw(picture pic=<default>, circle c, pen fillpen=<default>, pen drawpen=<default>);
 void filldraw(picture pic=<default>, ellipse el, pen fillpen=<default>, pen drawpen=<default>);
 void filldraw(picture pic=<default>, triangle t, pen fillpen=<default>, pen drawpen=<default>);
 void filldraw(picture pic=<default>, triangle[] ts, pen fillpen=<default>, pen drawpen=<default>);
-real sharpdegrees(line l1, line l2);
-void dot(picture pic=<default>, Label L, explicit point Z, align align=<default>, string format=<default>, pen p=<default>);
-real dot(point A, point B);
-real dot(point A, explicit pair B);
-real dot(explicit pair A, point B);
-void dot(picture pic=<default>, Label L, explicit mass M, align align=<default>, string format=<default>, pen p=<default>);
-void dot(picture pic=<default>, triangle t, pen p=<default>);
+path operator ecast(segment s);
+circle operator ecast(ellipse el);
+ellipse operator ecast(conic co);
+parabola operator ecast(conic co);
+hyperbola operator ecast(conic co);
+circle operator ecast(conic c);
+real approximate(real t);
+real[] approximate(real[] T);
 arc arccircle(point A, point M, point B);
 arc arccircle(point A, point B, real angle, bool direction=<default>);
 int nodesystem;
@@ -2787,9 +2791,6 @@
 transform rotate(explicit pair dir);
 transform rotate(explicit vector dir);
 transform rotate(explicit point dir);
-void label(picture pic=<default>, Label L, explicit mass M, align align=<default>, string format=<default>, pen p=<default>, filltype filltype=<default>);
-void label(picture pic=<default>, Label L, vertex V, pair align=<default>, real alignFactor=<default>, pen p=<default>, filltype filltype=<default>);
-void label(picture pic=<default>, Label LA=<default>, Label LB=<default>, Label LC=<default>, triangle t, real alignAngle=<default>, real alignFactor=<default>, pen p=<default>, filltype filltype=<default>);
 transform xscaleO(real x);
 real degrees(explicit point M, coordsys R=<default>, bool warn=<default>);
 real degrees(vector v, coordsys R=<default>, bool warn=<default>);
@@ -2797,29 +2798,26 @@
 real degrees(line l1, line l2);
 real degrees(arc a);
 bool isparabola(bqe bqe);
-path operator ecast(segment s);
-circle operator ecast(ellipse el);
-ellipse operator ecast(conic co);
-parabola operator ecast(conic co);
-hyperbola operator ecast(conic co);
-circle operator ecast(conic c);
-real approximate(real t);
-real[] approximate(real[] T);
+bqe equation(ellipse el);
+bqe equation(parabola p);
+bqe equation(hyperbola h);
+bqe equation(explicit conic co);
 point orthocentercenter(point A, point B, point C);
 point orthocentercenter(triangle t);
 bool between(point M, point O, point N);
+string massformat(string format=<default>, string s, mass M);
+conic conic(point F, line l, real e);
+conic conic(point M1, point M2, point M3, point M4, point M5);
+conic conic(bqe bqe);
 path NoModifier(path);
 transform projection(point A, point B);
 transform projection(point A, point B, point C, point D, bool safe=<default>);
 transform projection(line l);
 transform projection(line l1, line l2, bool safe=<default>);
-string massformat(string format=<default>, string s, mass M);
-conic conic(point F, line l, real e);
-conic conic(point M1, point M2, point M3, point M4, point M5);
-conic conic(bqe bqe);
 triangle tangential(triangle t);
 side opposite(vertex V);
 vertex opposite(side side);
+path compassmark(pair O, pair A, real position, real angle=<default>);
 transform xscale(real k, point M);
 real rf(real x, real y, real z);
 mass mass(point M, real m);
@@ -2827,6 +2825,9 @@
 mass mass(coordsys R, explicit pair p, real m);
 pen addpenline;
 pen addpenline(pen p);
+void drawline(picture pic=<default>, triangle t, pen p=<default>);
+real linemargin;
+real linemargin();
 bool concurrent(... line[] l);
 int conicnodesnumber(conic co, real angle1, real angle2, bool dir=<default>);
 point[] standardizecoordsys(coordsys R=<default>, bool warn=<default> ... point[] M);
@@ -2839,16 +2840,16 @@
 circle circle(inversion i);
 point incenter(point A, point B, point C);
 point incenter(triangle t);
-path compassmark(pair O, pair A, real position, real angle=<default>);
-bool inside(ellipse el, point M);
-bool inside(parabola p, point M);
-void drawline(picture pic=<default>, triangle t, pen p=<default>);
+void lineinversion();
 point ppoint(arc a, real x);
+ellipse ellipse(point F1, point F2, real a);
+ellipse ellipse(point F1, point F2, point M);
+ellipse ellipse(point C, real a, real b, real angle=<default>);
+ellipse ellipse(bqe bqe);
+ellipse ellipse(point M1, point M2, point M3, point M4, point M5);
 path fromCenter(conic co, real angle1, real angle2, int n, bool direction);
 point bisectorpoint(side side);
 bool byvertices;
-real linemargin;
-real linemargin();
 int[] tricoef(side side);
 real angle(explicit point M, coordsys R=<default>, bool warn=<default>);
 real angle(explicit vector v, coordsys R=<default>, bool warn=<default>);
@@ -2857,7 +2858,6 @@
 real angle(arc a);
 real[] intersect(path g, explicit pair p, real fuzz=<default>);
 real[] intersect(path g, explicit point P, real fuzz=<default>);
-void lineinversion();
 bool operator !=(explicit point M, explicit point N);
 bool operator !=(line l1, line l2);
 triangle extouch(triangle t);
@@ -2906,7 +2906,6 @@
 void InOutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>, projection P);
 void Bounds(picture, axisT)(int type=<default>, int type2=<default>, triple align=<default>, bool extend=<default>);
 void Bounds(picture, axisT);
-void labeltick(picture pic, real[][] T, path3 g, ticklocate locate, real val, int sign, real Size, string ticklabel(real), Label F, real norm=<default>);
 void limits(picture pic=<default>, triple min, triple max);
 void labelaxis(picture pic, real[][] T, Label L, path3 g, ticklocate locate=<default>, int sign=<default>, bool ticklabels=<default>);
 ticklocate ticklocate(real a, real b, autoscaleT S=<default>, real tickmin=<default>, real tickmax=<default>, real time(real)=<default>, triple dir(real));
@@ -2917,27 +2916,24 @@
 path3 Circle(triple c, real r, triple normal=<default>, int n=<default>);
 real ytrans(real[][] t, real y);
 real xtrans(real[][] t, real x);
+void labely(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
+void labeltick(picture pic, real[][] T, path3 g, ticklocate locate, real val, int sign, real Size, string ticklabel(real), Label F, real norm=<default>);
 void Straight(flatguide3)(... void(flatguide3)[]);
 void polargraph(flatguide3)(real r(real, real), real theta(real), real phi(real), int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
 void NoTicks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>, projection P)();
 void NoTicks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>, projection P);
-void labely(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
+void labelx(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
+real ScaleX(picture pic=<default>, real x);
 void Spline(flatguide3)(... void(flatguide3)[]);
-real ScaleX(picture pic=<default>, real x);
 void drawtick(picture pic, real[][] T, path3 g, path3 g2, ticklocate locate, real val, real Size, int sign, pen p, bool extend);
 void axis(picture pic=<default>, Label L=<default>, path3 g, path3 g2=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>, projection P), ticklocate locate, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, int[] divisor=<default>, bool above=<default>, bool opposite=<default>);
 void xtick(picture pic=<default>, triple v, triple dir=<default>, real size=<default>, pen p=<default>);
 void xtick(picture pic=<default>, Label L, triple v, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
-void labelx(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
 void ytick(picture pic=<default>, triple v, triple dir=<default>, real size=<default>, pen p=<default>);
 void ytick(picture pic=<default>, Label L, triple v, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
 path3 Arc(triple c, triple v1, triple v2, triple normal=<default>, bool direction=<default>, int n=<default>);
 path3 Arc(triple c, real r, real theta1, real phi1, real theta2, real phi2, triple normal=<default>, bool direction, int n=<default>);
 path3 Arc(triple c, real r, real theta1, real phi1, real theta2, real phi2, triple normal=<default>, int n=<default>);
-void tick(picture pic=<default>, triple v, triple dir, real size=<default>, pen p=<default>);
-void tick(picture pic=<default>, Label L, real value, triple v, triple dir, string format=<default>, real size=<default>, pen p=<default>);
-void ztick(picture pic=<default>, triple v, triple dir=<default>, real size=<default>, pen p=<default>);
-void ztick(picture pic=<default>, Label L, triple v, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
 triple polar(real r, real theta, real phi);
 void graph(flatguide3)(triple F(real), real, real, int)(void join(flatguide3)(... void(flatguide3)[]));
 void(flatguide3)[] graph(triple F(real), real, real, int)(void join(flatguide3)(... void(flatguide3)[]), bool3 cond(real));
@@ -2954,15 +2950,19 @@
 void graph(flatguide3)(picture pic=<default>, real f(pair), path p, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
 void graph(flatguide3)(real f(pair), path p, int n=<default>, real T(pair), void join(flatguide3)(... void(flatguide3)[])=<default>);
 void xaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>, projection P)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>, projection P=<default>);
+path3[] segment(triple[] v, bool[] cond, void join(flatguide3)(... void(flatguide3)[])=<default>);
 void labelx3(picture pic=<default>, Label L=<default>, real x, align align=<default>, string format=<default>, pen p=<default>);
-void draw(picture pic=<default>, Label[] L=<default>, void(flatguide3)[][] g, pen[] p, light light=<default>, string name=<default>, render render=<default>, interaction interaction=<default>);
-void draw(picture pic=<default>, Label[] L=<default>, void(flatguide3)[][] g, pen p=<default>, light light=<default>, string name=<default>, render render=<default>, interaction interaction=<default>);
 picture vectorfield(path3 vector(pair v), triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, bool truesize=<default>, real maxlength=<default>, bool cond(pair z)=<default>, pen p=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, string name=<default>, render render=<default>);
 triple Scale(picture pic=<default>, triple v);
 triple[][] Scale(picture pic=<default>, triple[][] P);
-path3[] segment(triple[] v, bool[] cond, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void draw(picture pic=<default>, Label[] L=<default>, void(flatguide3)[][] g, pen[] p, light light=<default>, string name=<default>, render render=<default>, interaction interaction=<default>);
+void draw(picture pic=<default>, Label[] L=<default>, void(flatguide3)[][] g, pen p=<default>, light light=<default>, string name=<default>, render render=<default>, interaction interaction=<default>);
+void tick(picture pic=<default>, triple v, triple dir, real size=<default>, pen p=<default>);
+void tick(picture pic=<default>, Label L, real value, triple v, triple dir, string format=<default>, real size=<default>, pen p=<default>);
+void yaxis3At(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>, projection P)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>, bool opposite=<default>, bool opposite2=<default>, bool primary=<default>, projection P=<default>);
 void label(picture pic, Label L, triple v, real x, align align, string format, pen p);
-void yaxis3At(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>, projection P)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>, bool opposite=<default>, bool opposite2=<default>, bool primary=<default>, projection P=<default>);
+void ztick(picture pic=<default>, triple v, triple dir=<default>, real size=<default>, pen p=<default>);
+void ztick(picture pic=<default>, Label L, triple v, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
 void xtick3(picture pic=<default>, real x, triple dir=<default>, real size=<default>, pen p=<default>);
 void xtick3(picture pic=<default>, Label L, real x, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
 real[] uniform(real T(real x), real Tinv(real x), real a, real b, int n);
@@ -3070,10 +3070,11 @@
 scaleT Log(bool automin=<default>, bool automax=<default>);
 guide Spline(... guide[]);
 void errorbar(picture pic, pair z, pair dp, pair dm, pen p=<default>, real size=<default>);
+void yaxisAt(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool opposite=<default>);
+void yequals(picture pic=<default>, Label L=<default>, real y, bool extend=<default>, real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>);
 tickvalues None(tickvalues v);
 string conditionlength;
 pair polar(real r, real theta);
-void yaxisAt(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool opposite=<default>);
 void scale(picture pic=<default>, scaleT x, scaleT y=<default>, scaleT z=<default>);
 void scale(picture pic=<default>, bool xautoscale=<default>, bool yautoscale=<default>, bool zautoscale=<default>);
 guide graph(pair f(real), real, real, int)(guide join(... guide[]));
@@ -3094,10 +3095,6 @@
 path[] segment(pair[] z, bool[] cond, guide join(... guide[])=<default>);
 string trailingzero;
 void xlimits(picture pic=<default>, real min=<default>, real max=<default>, bool crop=<default>);
-bool logaxiscoverage(int N, transform T, path g, ticklocate locate, pair side, int sign, real Size, Label F, string ticklabel(real), real limit, int first, int last);
-void label(picture pic, Label L, pair z, real x, align align, string format, pen p);
-scaleT Linear;
-scaleT Linear(bool automin=<default>, bool automax=<default>, real s=<default>, real intercept=<default>);
 void NoTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)();
 void NoTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>);
 tickvalues OmitTick(tickvalues)(... real[] x);
@@ -3104,20 +3101,22 @@
 picture vectorfield(path vector(real), path g, int n, bool truesize=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>);
 picture vectorfield(path vector(pair), pair a, pair b, int nx=<default>, int ny=<default>, bool truesize=<default>, bool cond(pair z)=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>);
 pair Scale(picture pic=<default>, pair z);
+bool logaxiscoverage(int N, transform T, path g, ticklocate locate, pair side, int sign, real Size, Label F, string ticklabel(real), real limit, int first, int last);
+void Bottom(picture, axisT)(bool extend=<default>);
+void Bottom(picture, axisT);
 void XEquals(picture, axisT)(real x, bool extend=<default>);
 string OmitFormat(real)(string s=<default> ... real[] x);
-void Bottom(picture, axisT)(bool extend=<default>);
-void Bottom(picture, axisT);
+scaleT Linear;
+scaleT Linear(bool automin=<default>, bool automax=<default>, real s=<default>, real intercept=<default>);
 void yaxis(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool autorotate=<default>);
 real linear(real)(real S(real)=<default>, real Min, real Max);
-void xequals(picture pic=<default>, Label L=<default>, real x, bool extend=<default>, real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>);
-void xaxisAt(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool opposite=<default>);
 void tick(picture pic=<default>, pair z, pair dir, real size=<default>, pen p=<default>);
 void tick(picture pic=<default>, Label L, real value, explicit pair z, pair dir, string format=<default>, real size=<default>, pen p=<default>);
 void YZero(picture, axisT)(bool extend=<default>);
 void YZero(picture, axisT);
-int Value;
-void yequals(picture pic=<default>, Label L=<default>, real y, bool extend=<default>, real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>);
+void xaxisAt(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool opposite=<default>);
+void label(picture pic, Label L, pair z, real x, align align, string format, pen p);
+void xequals(picture pic=<default>, Label L=<default>, real x, bool extend=<default>, real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>);
 void Top(picture, axisT)(bool extend=<default>);
 void Top(picture, axisT);
 tickvalues OmitTickInterval(tickvalues)(real a, real b);
@@ -3129,6 +3128,7 @@
 void LeftTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
 void LeftTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
 void LeftTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>);
+int Value;
 Label Break;
 tickvalues Break(tickvalues)(real, real);
 real zerotickfuzz;
@@ -3264,25 +3264,25 @@
 frame tildeframe;
 real tildemarksize(pen p=<default>);
 real tildemarksizefactor;
+real stickmarkspace(pen p=<default>);
 frame stickframe(int n=<default>, real size=<default>, pair space=<default>, real angle=<default>, pair offset=<default>, pen p=<default>);
 frame stickframe;
 frame circlebarframe(int n=<default>, real barsize=<default>, real radius=<default>, real angle=<default>, pair offset=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>);
 real barmarksize(pen p=<default>);
 real markangleradiusfactor;
-real markanglespacefactor;
 marker StickIntervalMarker(int i=<default>, int n=<default>, real size=<default>, real space=<default>, real angle=<default>, pair offset=<default>, bool rotated=<default>, pen p=<default>, frame uniform=<default>, bool above=<default>);
 void markangle(picture pic=<default>, Label L=<default>, int n=<default>, real radius=<default>, real space=<default>, pair A, pair O, pair B, bool arrow(picture, path, pen, marginT(path, pen))=<default>, pen p=<default>, filltype filltype=<default>, marginT margin(path, pen)=<default>, marker marker=<default>);
+real circlemarkradiusfactor;
 marker operator *(transform T, marker m);
-real circlemarkradiusfactor;
 real crossmarksize(pen p=<default>);
 real markangleradius(pen p=<default>);
 real markangleradius;
 frame duplicate(path g, int n=<default>, pair space=<default>, pen p=<default>);
-real stickmarkspace(pen p=<default>);
 real circlemarkradius(pen p=<default>);
 real stickmarksize(pen p=<default>);
+real markanglespacefactor;
+marker CircleBarIntervalMarker(int i=<default>, int n=<default>, real barsize=<default>, real radius=<default>, real angle=<default>, pair offset=<default>, bool rotated=<default>, pen p=<default>, filltype filltype=<default>, bool circleabove=<default>, frame uniform=<default>, bool above=<default>);
 frame crossframe(int n=<default>, real size=<default>, pair space=<default>, real angle=<default>, pair offset=<default>, pen p=<default>);
-marker CircleBarIntervalMarker(int i=<default>, int n=<default>, real barsize=<default>, real radius=<default>, real angle=<default>, pair offset=<default>, bool rotated=<default>, pen p=<default>, filltype filltype=<default>, bool circleabove=<default>, frame uniform=<default>, bool above=<default>);
 real crossmarksizefactor;
 real stickmarkspacefactor;
 void markinterval(picture pic=<default>, frame f, path g)(int n=<default>, frame f, bool rotated=<default>);
@@ -3290,23 +3290,23 @@
 real[] leastsquares(real[][] A, real[] b, bool warn=<default>);
 real[] zero(int n);
 real[][] zero(int n, int m);
+real interpolate(real[] x, real[] y, real x0, int i);
+real interpolate(real[] x, real[] y, real x0);
 pair[][] fft(pair[][] a, int sign=<default>);
+int[][] segment(bool[] b);
 real asec(real x);
 bool increasing(real[] a, bool strict=<default>);
 bool lexorder(pair a, pair b);
 bool lexorder(triple a, triple b);
-int[][] segment(bool[] b);
-real interpolate(real[] x, real[] y, real x0, int i);
-real interpolate(real[] x, real[] y, real x0);
+bool polygon(path p);
 triple intersectionpoint(triple n0, triple P0, triple n1, triple P1);
-bool polygon(path p);
 real csc(real x);
-void drawline(picture pic=<default>, pair P, pair Q, pen p=<default>);
 real slope(path g, real x, int n=<default>, real fuzz=<default>);
 real slope(path g, explicit pair z, int n=<default>, real fuzz=<default>);
 bool rectangular(real[][] m);
 bool rectangular(pair[][] m);
 bool rectangular(triple[][] m);
+void drawline(picture pic=<default>, pair P, pair Q, pen p=<default>);
 int unique(real[] a, real x);
 int unique(string[] a, string x);
 real intersect(pair p, pair q, pair z);
@@ -3352,20 +3352,20 @@
 RKTableau RK3;
 RKTableau Euler;
 void expfactors(real x, coefficients a);
-real[] newton(int iterations=<default>, real[] f(real[]), real[][] jacobian(real[]), real[] t);
-real phi4(real x);
+real[] Coeff;
 real phi3(real x);
-void report(real old, real h, real t);
-real adjust(real h, real error, real tolmin, real tolmax, RKTableau tableau);
+RKTableau E_RK3BS;
 RKTableau E_Euler;
-real[] Coeff;
-RKTableau E_RK3BS;
 void write(solution S);
 void write(Solution S);
+real adjust(real h, real error, real tolmin, real tolmax, RKTableau tableau);
+void report(real old, real h, real t);
+real[] newton(int iterations=<default>, real[] f(real[]), real[][] jacobian(real[]), real[] t);
 real phi2(real x);
 RKTableau RK5;
 real phi1(real x);
 real[][] finiteDifferenceJacobian(real[] f(real[]), real[] t, real[] h=<default>);
+real phi4(real x);
 solution integrate(real y, real c=<default>, real f(real t, real y), real a, real b=<default>, real h=<default>, int n=<default>, bool dynamic=<default>, real tolmin=<default>, real tolmax=<default>, real dtmin=<default>, real dtmax=<default>, RKTableau tableau, bool verbose=<default>);
 Solution integrate(real[] y, real[] f(real t, real[] y), real a, real b=<default>, real h=<default>, int n=<default>, bool dynamic=<default>, real tolmin=<default>, real tolmax=<default>, real dtmin=<default>, real dtmax=<default>, RKTableau tableau, bool verbose=<default>);
 pen[] BWRainbow2(int NColors=<default>);
@@ -3380,6 +3380,7 @@
 void palette(picture pic=<default>, Label L=<default>, bounds bounds, pair initial, pair final, void axis(picture, axisT)=<default>, pen[] palette, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(int sign=<default>)=<default>, bool copy=<default>, bool antialias=<default>);
 bounds Full(picture pic, real min, real max);
 bounds Automatic(picture pic, real min, real max);
+pen[] Rainbow(int NColors=<default>);
 pen[] Grayscale(int NColors=<default>);
 bounds Range(picture pic, real min, real max)(bool automin=<default>, real min=<default>, bool automax=<default>, real max=<default>);
 void image(frame f, real[][] data, pair initial, pair final, pen[] palette, bool transpose=<default>, transform t=<default>, bool copy=<default>, bool antialias=<default>);
@@ -3391,19 +3392,18 @@
 bounds image(picture pic=<default>, pair[] z, real[] f, bounds range(picture pic, real min, real max)=<default>, pen[] palette);
 bounds image(picture pic=<default>, real[] x, real[] y, real[] f, bounds range(picture pic, real min, real max)=<default>, pen[] palette);
 pen[] adjust(picture pic, real min, real max, real rmin, real rmax, pen[] palette);
-pen[] Rainbow(int NColors=<default>);
+pen[] cmyk(pen[] Palette);
+void NoTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(int sign=<default>);
 transform swap;
 real[] sequencereal;
 pen[] Gradient(int NColors=<default> ... pen[] p);
-pen[] cmyk(pen[] Palette);
-void NoTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(int sign=<default>);
 picture tile(real Hx=<default>, real Hy=<default>, pen p=<default>, filltype filltype=<default>);
 frame tiling(string name, picture pic, pair lb=<default>, pair rt=<default>);
 picture crosshatch(real H=<default>, pen p=<default>);
 real hatchepsilon;
+picture hatch(real H=<default>, pair dir=<default>, pen p=<default>);
 picture brick(real Hx=<default>, real Hy=<default>, pen p=<default>);
 void add(string name, picture pic, pair lb=<default>, pair rt=<default>);
-picture hatch(real H=<default>, pair dir=<default>, pen p=<default>);
 picture checker(real Hx=<default>, real Hy=<default>, pen p=<default>);
 void gsave(picture pic=<default>);
 pen textpen;
@@ -3478,38 +3478,38 @@
 pen steppagenumberpen;
 real figureborder;
 pen pagenumberpen;
-string oldbulletcolor;
-pair startposition;
-void step();
-string cropcode(string s);
 void figure(string[] s, string options=<default>, real margin=<default>, string[] captions=<default>, string caption=<default>, string[] url=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, bool final=<default>);
 void figure(string s, string options=<default>, string caption=<default>, string url=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, bool final=<default>);
 pen foregroundcolor;
-void reversevideo();
-void equation(string s, pen p=<default>);
 string bulletcolor(string color);
-string[] codefile;
-bool allowstepping;
+pair startposition;
 bool landscape;
-void erasestep(int erasenode);
-bool firststep;
 bool reverse;
+void usersetting();
+pen itempen;
+pen institutionpen;
 void item(string s, pen p=<default>, bool step=<default>);
 void color(string name, string color);
-pen itempen;
-pen institutionpen;
+string cropcode(string s);
+void erasestep(int erasenode);
+void asycode(bool center=<default>, string s, string options=<default>, string caption=<default>, string preamble=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, real indent=<default>, real skip=<default>, filltype filltype=<default>, bool newslide=<default>);
+real pagemargin;
+void asyfigure(string s, string options=<default>, string caption=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, filltype filltype=<default>, bool newslide=<default>);
 transform tinv;
-void usersetting();
 void setpens(pen red=<default>, pen blue=<default>, pen steppen=<default>);
+bool allowstepping;
 int preamblenodes;
+void remark(bool center=<default>, string s, pair align=<default>, pen p=<default>, real indent=<default>, bool minipage=<default>, real skip=<default>, filltype filltype=<default>, bool step=<default>);
+void exitfunction();
 pair titlealign;
+void step();
 pair dateskip;
 void titlepage(string title, string author, string institution=<default>, string date=<default>, string url=<default>, bool newslide=<default>);
-void asycode(bool center=<default>, string s, string options=<default>, string caption=<default>, string preamble=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, real indent=<default>, real skip=<default>, filltype filltype=<default>, bool newslide=<default>);
-real pagemargin;
-void asyfigure(string s, string options=<default>, string caption=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, filltype filltype=<default>, bool newslide=<default>);
-void remark(bool center=<default>, string s, pair align=<default>, pen p=<default>, real indent=<default>, bool minipage=<default>, real skip=<default>, filltype filltype=<default>, bool step=<default>);
-void exitfunction();
+string[] codefile;
+string oldbulletcolor;
+bool firststep;
+void equation(string s, pen p=<default>);
+void reversevideo();
 void bibliography(string name);
 pair titlepageposition;
 void equations(string s, pen p=<default>);
@@ -3592,12 +3592,12 @@
 path line(path p, path q, real[] t);
 pen defaultbackpen;
 real[] tangent(path p, path q, bool side);
-path[] cylinder(path3 base, real h, triple axis=<default>, projection P);
-revolution cylinder(triple c=<default>, real r, real h, triple axis=<default>);
+surface surface(revolution r, int n=<default>, pen color(int i, real j)=<default>);
 void draw(picture pic=<default>, revolution r, int m=<default>, int n=<default>, pen frontpen=<default>, pen backpen=<default>, pen longitudinalpen=<default>, pen longitudinalbackpen=<default>, light light=<default>, string name=<default>, render render=<default>, projection P=<default>);
 revolution operator *(real[][] t, revolution r);
 revolution cone(triple c=<default>, real r, real h, triple axis=<default>, int n=<default>);
-surface surface(revolution r, int n=<default>, pen color(int i, real j)=<default>);
+path[] cylinder(path3 base, real h, triple axis=<default>, projection P);
+revolution cylinder(triple c=<default>, real r, real h, triple axis=<default>);
 linefit leastsquares(real[] x, real[] y);
 linefit leastsquares(real[] x, real[] y, real[] w);
 int bins(real[] data, int max=<default>);
@@ -3616,8 +3616,8 @@
 real legendmarkersize;
 real Gaussrand();
 pair Gaussrandpair();
+real variancebiased(real[] A);
 real mean(real[] A);
-real variancebiased(real[] A);
 real stdev(real[] A);
 real Gaussian(real x, real sigma);
 real Gaussian(real x);
@@ -3658,30 +3658,30 @@
 pen Violet;
 pen Plum;
 pen Lavender;
-pen RedOrange;
+pen White;
 pen Black;
 pen BlueGreen;
 pen Cerulean;
+pen Apricot;
 pen RawSienna;
-pen Bittersweet;
-pen Cyan;
+pen Rhodamine;
+pen Red;
 pen Gray;
 pen GreenYellow;
 pen YellowOrange;
-pen Apricot;
-pen White;
 pen ForestGreen;
 pen BurntOrange;
-pen Rhodamine;
-pen Red;
-pen Emerald;
 pen Turquoise;
+pen RedOrange;
 pen DarkOrchid;
+pen Melon;
+pen Orange;
 pen RoyalPurple;
-pen Melon;
 pen CadetBlue;
-pen Orange;
 pen Dandelion;
+pen Emerald;
+pen Cyan;
+pen Bittersweet;
 pen Orchid;
 pen BrickRed;
 pen CornflowerBlue;
@@ -3881,20 +3881,17 @@
 int PRCsphere;
 real Single;
 real Zero;
+marginT3 EndDotMargin3(path3, pen);
 pair minbound(triple[] A, projection P);
 pair minbound(triple[][] A, projection P);
 real[][] shift(triple v);
 real[][] shift(real x, real y, real z);
 real[][] shift(real[][] t);
-triple Y;
-interaction Billboard;
-marginT3 TrueMargin3(path3, pen)(real begin, real end);
 pair xypart(triple v);
 real[][] yscale3(real y);
 real Medium;
-bool ArcArrow3(picture, path3, material, marginT3(path3, pen), light, light)(arrowhead3 arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, position position=<default>, material arrowheadpen=<default>);
-bool ArcArrow3(picture, path3, material, marginT3(path3, pen), light, light);
 bool None(picture, path3, material, marginT3(path3, pen), light, light);
+void unitcylinderDraw(frame f, real[][] t=<default>, material[] m, light light=<default>, render render=<default>)(bool core);
 real[][] intersections(path3 p, patch s, real fuzz=<default>);
 real[][] intersections(path3 p, surface s, real fuzz=<default>);
 triple arcdir(path3 p, real L);
@@ -3907,16 +3904,11 @@
 path3 interp(path3 a, path3 b, real t);
 marginT3 operator +(path3, pen)(marginT3 ma(path3, pen), marginT3 mb(path3, pen));
 path3 trim(path3 g, real begin, real end);
-path3[] box(triple v1, triple v2);
-surface extrude(path3 p, path3 q);
-surface extrude(path3 p, triple axis=<default>);
-surface extrude(path p, triple plane(pair)=<default>, triple axis=<default>);
-surface extrude(explicit path[] p, triple axis=<default>);
-surface extrude(Label L, triple axis=<default>);
-marginT3 EndDotMargin3(path3, pen);
 path3 operator &(path3 p, cycleToken tok);
 void tensorshade(transform t=<default>, frame f, patch s, material m, light light=<default>, projection P);
 void operator ::(flatguide3)(... void(flatguide3)[]);
+triple truepoint(picture pic=<default>, triple dir, bool user=<default>, projection P=<default>);
+triple[][][] hsplit(triple[][] P, real v=<default>);
 pair dir(triple v, triple dir, projection P);
 triple dir(real theta, triple d0, triple d1, triple reference);
 triple dir(path3 p);
@@ -3923,6 +3915,7 @@
 triple dir(path3 p, path3 h);
 void operator --(flatguide3)(... void(flatguide3)[] g);
 triple endpoint(path3 p);
+marginT3 TrueMargin3(path3, pen)(real begin, real end);
 int length(void g(flatguide3));
 path3 arc(triple c, triple v1, triple v2, triple normal=<default>, bool direction=<default>);
 path3 arc(triple c, real r, real theta1, real phi1, real theta2, real phi2, triple normal=<default>, bool direction);
@@ -3934,29 +3927,32 @@
 triple[] intersectionpoints(explicit path3[] p, explicit path3[] q, real fuzz=<default>);
 triple[] intersectionpoints(path3 p, patch s, real fuzz=<default>);
 triple[] intersectionpoints(path3 p, surface s, real fuzz=<default>);
-void unitcylinderDraw(frame f, real[][] t=<default>, material[] m, light light=<default>, render render=<default>)(bool core);
+triple[][] subpatchend(triple[][] P, real u, real v);
+void addStereoViews(picture dest, picture src, bool group=<default>, filltype filltype=<default>, real eyetoview=<default>, bool leftright=<default>, projection P=<default>);
+void addStereoViews(picture src, bool group=<default>, filltype filltype=<default>, real eyetoview=<default>, bool leftright=<default>, projection P=<default>);
+triple midpoint(path3 p);
 triple beginpoint(path3 p);
+void aim(flatguide3 g, int N);
+void aim(flatguide3 g, int i, int n);
 real[][] transform3(triple u, triple v, triple w=<default>);
 real[][] transform3(projection P=<default>);
-void drawTessellation(frame f, surface s, material surfacepen=<default>, pen meshpen=<default>, light light=<default>, light meshlight=<default>, string name=<default>, render render=<default>);
-void drawTessellation(picture pic=<default>, surface s, material surfacepen=<default>, pen meshpen=<default>, light light=<default>, light meshlight=<default>, string name=<default>, render render=<default>);
+projection obliqueZ(real angle=<default>);
+projection obliqueZ;
+void label(frame f, Label L, triple position, align align=<default>, pen p=<default>, light light=<default>, string name=<default>, render render=<default>, interaction interaction=<default>, projection P=<default>);
+void label(picture pic=<default>, Label L, triple position, align align=<default>, pen p=<default>, light light=<default>, string name=<default>, render render=<default>, interaction interaction=<default>);
+void label(picture pic=<default>, Label L, path3 g, align align=<default>, pen p=<default>, light light=<default>, string name=<default>, interaction interaction=<default>);
+triple reldir(path3 p, real l);
+triple max(explicit path3[] p);
+triple max(surface s);
+pair max(surface s, projection P);
+pair max(path3 p, projection P);
+pair max(frame f, projection P);
 void operator ..(flatguide3)(... void(flatguide3)[] g);
-void aim(flatguide3 g, int N);
-void aim(flatguide3 g, int i, int n);
 string partname(int i, render render=<default>);
-void dot(frame f, triple v, material p=<default>, light light=<default>, string name=<default>, render render=<default>, projection P=<default>);
-void dot(frame f, triple[] v, material p=<default>, light light=<default>, string name=<default>, render render=<default>, projection P=<default>);
-void dot(frame f, path3 g, material p=<default>, light light=<default>, string name=<default>, render render=<default>, projection P=<default>);
-void dot(frame f, path3[] g, material p=<default>, light light=<default>, string name=<default>, render render=<default>, projection P=<default>);
-void dot(picture pic=<default>, triple v, material p=<default>, light light=<default>, string name=<default>, render render=<default>);
-void dot(picture pic=<default>, triple[] v, material p=<default>, light light=<default>, string name=<default>, render render=<default>);
-void dot(picture pic=<default>, explicit path3 g, material p=<default>, light light=<default>, string name=<default>, render render=<default>);
-void dot(picture pic=<default>, path3[] g, material p=<default>, light light=<default>, string name=<default>, render render=<default>);
-void dot(picture pic=<default>, Label L, triple v, align align=<default>, string format=<default>, material p=<default>, light light=<default>, string name=<default>, render render=<default>);
+projection LeftView;
 void reverse(flatguide3)(void g(flatguide3));
 patch reverse(patch s);
 triple size3(picture pic, bool user=<default>, projection P=<default>);
-picture arrow2(arrowhead3 arrowhead=<default>, path3 g, material p=<default>, material arrowheadpen=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, marginT3 margin(path3, pen)=<default>, light light=<default>, light arrowheadlight=<default>);
 surface unitdisk;
 triple min(explicit path3[] p);
 triple min(surface s);
@@ -3963,6 +3959,7 @@
 pair min(surface s, projection P);
 pair min(path3 p, projection P);
 pair min(frame f, projection P);
+real[] curlSpecifier(void g(flatguide3), int t);
 void write(file file, control c);
 void write(file file, Tension t);
 void write(file file, dir d);
@@ -3976,13 +3973,10 @@
 void write(string s=<default>, explicit void(flatguide3)[] x, void suffix(file)=<default>);
 void write(file file, string s=<default>, material x, void suffix(file)=<default>);
 void write(string s=<default>, material x, void suffix(file)=<default>);
-real[][] align(triple u);
-Label align(Label L, triple dir);
-path3[] align(path3[] g, real[][] t=<default>, triple position, triple align, pen p=<default>);
-surface align(surface s, real[][] t=<default>, triple position, triple align, pen p=<default>);
-projection[][] ThreeViews;
-void add2(picture pic, arrowhead3 arrowhead, real size, real angle, filltype filltype, material arrowheadpen, path3 g, material p, marginT3 margin(path3, pen), light light, light arrowheadlight);
-triple min3(picture pic, projection P=<default>);
+light White;
+void addArrow(picture pic, arrowhead3 arrowhead, path3 g, pen p, real size, real angle, filltype filltype, real position);
+bool EndBar3(picture, path3, material, marginT3(path3, pen), light, light)(real size=<default>, triple dir=<default>);
+bool EndBar3(picture, path3, material, marginT3(path3, pen), light, light);
 void draw(frame f, path3 g, material p=<default>, light light=<default>, string name=<default>, render render=<default>, projection P=<default>);
 void draw(frame f, triple[] v, int[][] vi, triple[] n=<default>, int[][] ni=<default>, material m=<default>, pen[] p=<default>, int[][] pi=<default>, light light=<default>, render render=<default>);
 void draw(picture pic=<default>, triple[] v, int[][] vi, triple[] n=<default>, int[][] ni=<default>, material m=<default>, pen[] p=<default>, int[][] pi=<default>, light light=<default>, render render=<default>);
@@ -3998,7 +3992,12 @@
 void draw(picture pic=<default>, explicit path3[] g, material p=<default>, marginT3 margin(path3, pen)=<default>, light light=<default>, string name=<default>, render render=<default>);
 void draw(picture pic=<default>, Label L=<default>, path3 g, align align=<default>, material p=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light), bool bar(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, light light=<default>, light arrowheadlight=<default>, string name=<default>, render render=<default>);
 void draw(frame f, path3 g, material p=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light), light light=<default>, light arrowheadlight=<default>, string name=<default>, render render=<default>, projection P=<default>);
-triple cross(triple d0, triple d1, triple reference);
+real[][] align(triple u);
+Label align(Label L, triple dir);
+path3[] align(path3[] g, real[][] t=<default>, triple position, triple align, pen p=<default>);
+surface align(surface s, real[][] t=<default>, triple position, triple align, pen p=<default>);
+projection[][] ThreeViews;
+void add2(picture pic, arrowhead3 arrowhead, real size, real angle, filltype filltype, material arrowheadpen, path3 g, material p, marginT3 margin(path3, pen), light light, light arrowheadlight);
 triple relpoint(path3 p, real l);
 path3[] operator ^^(path3 p, path3 q);
 path3[] operator ^^(path3 p, explicit path3[] q);
@@ -4007,18 +4006,18 @@
 material material(material m, light light, bool colors=<default>);
 arrowhead3 HookHead3(real dir=<default>, real barb=<default>);
 arrowhead3 HookHead3;
+control nocontrol;
+surface unitsphere;
 pen color(triple normal, material m, light light, real[][] T=<default>);
-triple[][] subpatchend(triple[][] P, real u, real v);
-void addStereoViews(picture dest, picture src, bool group=<default>, filltype filltype=<default>, real eyetoview=<default>, bool leftright=<default>, projection P=<default>);
-void addStereoViews(picture src, bool group=<default>, filltype filltype=<default>, real eyetoview=<default>, bool leftright=<default>, projection P=<default>);
-triple max(explicit path3[] p);
-triple max(surface s);
-pair max(surface s, projection P);
-pair max(path3 p, projection P);
-pair max(frame f, projection P);
-void draw3D(frame f, patch s, material m, light light=<default>, render render=<default>, bool primitive=<default>);
-triple arcpoint(path3 p, real L);
-triple intersectionpoint(path3 p, path3 q, real fuzz=<default>);
+triple min3(picture pic, projection P=<default>);
+triple cross(triple d0, triple d1, triple reference);
+pen[] nullpens;
+triple max3(picture pic, projection P=<default>);
+real relative(Label L, path3 g);
+real defaultshininess;
+marginT3 PenMargins2(path3, pen);
+void drawTessellation(frame f, surface s, material surfacepen=<default>, pen meshpen=<default>, light light=<default>, light meshlight=<default>, string name=<default>, render render=<default>);
+void drawTessellation(picture pic=<default>, surface s, material surfacepen=<default>, pen meshpen=<default>, light light=<default>, light meshlight=<default>, string name=<default>, render render=<default>);
 material emissive(material m, bool colors=<default>);
 bool MidArrow3(picture, path3, material, marginT3(path3, pen), light, light)(arrowhead3 arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, material arrowheadpen=<default>);
 bool MidArrow3(picture, path3, material, marginT3(path3, pen), light, light);
@@ -4041,6 +4040,9 @@
 material[] operator cast(pen[] p);
 light operator cast(triple v);
 surface operator cast(surface[] s);
+void draw3D(frame f, patch s, material m, light light=<default>, render render=<default>, bool primitive=<default>);
+triple arcpoint(path3 p, real L);
+triple intersectionpoint(path3 p, path3 q, real fuzz=<default>);
 triple invert(pair z, triple normal, triple point, projection P=<default>);
 triple invert(pair z, projection P=<default>);
 triple invert(pair dir, triple v, projection P=<default>);
@@ -4053,6 +4055,24 @@
 triple[][] degenerate(triple[][] P);
 triple[] split(triple z0, triple c0, triple c1, triple z1, real t=<default>);
 triple[][][][] split(triple[][] P, real u=<default>, real v=<default>);
+path3 arrowbase(path3 r, triple y, real t, real size);
+pair viewportmargin(pair lambda);
+path3 plane(triple u, triple v, triple O=<default>);
+bool MidArcArrow3(picture, path3, material, marginT3(path3, pen), light, light)(arrowhead3 arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, material arrowheadpen=<default>);
+bool MidArcArrow3(picture, path3, material, marginT3(path3, pen), light, light);
+triple[][] operator /(triple[][] a, real[][] b);
+real reltime(path3 p, real l);
+void bar(picture pic, triple a, triple d, triple perp=<default>, material p=<default>, light light=<default>);
+picture bar(triple a, triple dir, triple perp=<default>, material p=<default>);
+arrowhead3 HookHead2(real dir=<default>, real barb=<default>, triple normal=<default>);
+arrowhead3 HookHead2;
+projection BackView;
+string format(triple v, string sep=<default>);
+void _draw(frame f, path3 g, triple center=<default>, material m, light light=<default>, interaction interaction=<default>);
+void drawarrow2(picture pic, arrowhead3 arrowhead=<default>, path3 g, material p=<default>, material arrowheadpen=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, marginT3 margin(path3, pen)=<default>, light light=<default>, light arrowheadlight=<default>, projection P=<default>);
+projection perspective(triple camera, triple up=<default>, triple target=<default>, real zoom=<default>, real angle=<default>, pair viewportshift=<default>, bool showtarget=<default>, bool autoadjust=<default>, bool center=<default>);
+projection perspective(real x, real y, real z, triple up=<default>, triple target=<default>, real zoom=<default>, real angle=<default>, pair viewportshift=<default>, bool showtarget=<default>, bool autoadjust=<default>, bool center=<default>);
+projection perspective(string s);
 projection operator *(real[][] t, projection P);
 control operator *(real[][] t, control c);
 dir operator *(real[][] t, dir d);
@@ -4062,30 +4082,25 @@
 light operator *(real[][] t, light light);
 patch operator *(real[][] t, patch s);
 surface operator *(real[][] t, surface s);
-real defaultshininess;
-pair viewportmargin(pair lambda);
-surface unitsphere;
-path3 plane(triple u, triple v, triple O=<default>);
-bool EndBar3(picture, path3, material, marginT3(path3, pen), light, light)(real size=<default>, triple dir=<default>);
-bool EndBar3(picture, path3, material, marginT3(path3, pen), light, light);
-control nocontrol;
-projection perspective(triple camera, triple up=<default>, triple target=<default>, real zoom=<default>, real angle=<default>, pair viewportshift=<default>, bool showtarget=<default>, bool autoadjust=<default>, bool center=<default>);
-projection perspective(real x, real y, real z, triple up=<default>, triple target=<default>, real zoom=<default>, real angle=<default>, pair viewportshift=<default>, bool showtarget=<default>, bool autoadjust=<default>, bool center=<default>);
-projection perspective(string s);
-bool MidArcArrow3(picture, path3, material, marginT3(path3, pen), light, light)(arrowhead3 arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, material arrowheadpen=<default>);
-bool MidArcArrow3(picture, path3, material, marginT3(path3, pen), light, light);
-triple[][] operator /(triple[][] a, real[][] b);
-triple truepoint(picture pic=<default>, triple dir, bool user=<default>, projection P=<default>);
+pen operator ecast(material m);
+real acos1(real x);
+void exitfunction();
+void dot(frame f, triple v, material p=<default>, light light=<default>, string name=<default>, render render=<default>, projection P=<default>);
+void dot(frame f, triple[] v, material p=<default>, light light=<default>, string name=<default>, render render=<default>, projection P=<default>);
+void dot(frame f, path3 g, material p=<default>, light light=<default>, string name=<default>, render render=<default>, projection P=<default>);
+void dot(frame f, path3[] g, material p=<default>, light light=<default>, string name=<default>, render render=<default>, projection P=<default>);
+void dot(picture pic=<default>, triple v, material p=<default>, light light=<default>, string name=<default>, render render=<default>);
+void dot(picture pic=<default>, triple[] v, material p=<default>, light light=<default>, string name=<default>, render render=<default>);
+void dot(picture pic=<default>, explicit path3 g, material p=<default>, light light=<default>, string name=<default>, render render=<default>);
+void dot(picture pic=<default>, path3[] g, material p=<default>, light light=<default>, string name=<default>, render render=<default>);
+void dot(picture pic=<default>, Label L, triple v, align align=<default>, string format=<default>, material p=<default>, light light=<default>, string name=<default>, render render=<default>);
+real[][] xscale3(real x);
 picture arrow(arrowhead3 arrowhead=<default>, path3 g, material p=<default>, material arrowheadpen=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, position position=<default>, bool forwards=<default>, marginT3 margin(path3, pen)=<default>, bool center=<default>, light light=<default>, light arrowheadlight=<default>);
 void arrow(picture pic=<default>, Label L=<default>, triple b, triple dir, real length=<default>, align align=<default>, pen p=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, light light=<default>, light arrowheadlight=<default>, string name=<default>, render render=<default>);
 void arrow(picture pic=<default>, Label L=<default>, triple b, pair dir, real length=<default>, align align=<default>, pen p=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, light light=<default>, light arrowheadlight=<default>, string name=<default>, render render=<default>, projection P=<default>);
-real reltime(path3 p, real l);
-arrowhead3 HookHead2(real dir=<default>, real barb=<default>, triple normal=<default>);
-arrowhead3 HookHead2;
-projection BackView;
-string format(triple v, string sep=<default>);
-pen[] nullpens;
-triple max3(picture pic, projection P=<default>);
+real[][] rotate(real angle, triple v);
+real[][] rotate(real angle, triple u, triple v);
+real[][] zscale3(real z);
 void add(picture pic=<default>, void d(picture, real[][]), bool exact=<default>);
 void add(picture pic, arrowhead3 arrowhead, real size, real angle, filltype filltype, position position, material arrowheadpen, path3 g, material p, bool forwards=<default>, marginT3 margin(path3, pen), bool center=<default>, light light, light arrowheadlight);
 void add(picture dest, picture src, triple position, bool group=<default>, bool above=<default>);
@@ -4092,77 +4107,62 @@
 void add(picture src, triple position, bool group=<default>, bool above=<default>);
 void add(picture dest=<default>, object src, pair position=<default>, pair align=<default>, bool group=<default>, filltype filltype=<default>, bool above=<default>);
 void add(picture dest=<default>, frame src, triple position);
-real[][] xscale3(real x);
-real[][] rotate(real angle, triple v);
-real[][] rotate(real angle, triple u, triple v);
-real[][] zscale3(real z);
-triple midpoint(path3 p);
-projection obliqueZ(real angle=<default>);
-projection obliqueZ;
-void label(frame f, Label L, triple position, align align=<default>, pen p=<default>, light light=<default>, string name=<default>, render render=<default>, interaction interaction=<default>, projection P=<default>);
-void label(picture pic=<default>, Label L, triple position, align align=<default>, pen p=<default>, light light=<default>, string name=<default>, render render=<default>, interaction interaction=<default>);
-void label(picture pic=<default>, Label L, path3 g, align align=<default>, pen p=<default>, light light=<default>, string name=<default>, interaction interaction=<default>);
 void operator ---(flatguide3)(... void(flatguide3)[]);
+path3 approach(path3 p, int n, real radix=<default>);
+bool ArcArrow3(picture, path3, material, marginT3(path3, pen), light, light)(arrowhead3 arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, position position=<default>, material arrowheadpen=<default>);
+bool ArcArrow3(picture, path3, material, marginT3(path3, pen), light, light);
 render operator init();
 Tension operator init();
 void operator init(flatguide3)();
 material operator init();
-path3 approach(path3 p, int n, real radix=<default>);
-marginT3 PenMargins2(path3, pen);
-pen operator ecast(material m);
-real acos1(real x);
-void exitfunction();
 real angleprecision;
 real Low;
 bool Blank(picture, path3, material, marginT3(path3, pen), light, light);
 bool ArcArrows3(picture, path3, material, marginT3(path3, pen), light, light)(arrowhead3 arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, material arrowheadpen=<default>);
 bool ArcArrows3(picture, path3, material, marginT3(path3, pen), light, light);
-void bar(picture pic, triple a, triple d, triple perp=<default>, material p=<default>, light light=<default>);
-picture bar(triple a, triple dir, triple perp=<default>, material p=<default>);
-light White;
-void addArrow(picture pic, arrowhead3 arrowhead, path3 g, pen p, real size, real angle, filltype filltype, real position);
-path3 arrowbase(path3 r, triple y, real t, real size);
-triple reldir(path3 p, real l);
+marginT3 BeginPenMargin3(path3, pen);
+surface extrude(path3 p, path3 q);
+surface extrude(path3 p, triple axis=<default>);
+surface extrude(path p, triple plane(pair)=<default>, triple axis=<default>);
+surface extrude(explicit path[] p, triple axis=<default>);
+surface extrude(Label L, triple axis=<default>);
 void operator controls(flatguide3)(triple post, triple pre);
 void operator controls(flatguide3)(triple v);
 real asin1(real x);
+triple Y;
+interaction Billboard;
 int adjustedIndex(int i, int n, bool cycles);
+picture arrow2(arrowhead3 arrowhead=<default>, path3 g, material p=<default>, material arrowheadpen=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, marginT3 margin(path3, pen)=<default>, light light=<default>, light arrowheadlight=<default>);
 int computeNormals(triple[] v, int[][] vi, triple[] n, int[][] ni);
 real[][] YX;
 real[][] YX(projection P=<default>);
-projection LeftView;
-real relative(Label L, path3 g);
-real[] curlSpecifier(void g(flatguide3), int t);
 void addViews(picture dest, picture src, projection[][] views=<default>, bool group=<default>, filltype filltype=<default>);
 void addViews(picture src, projection[][] views=<default>, bool group=<default>, filltype filltype=<default>);
-triple[][][] hsplit(triple[][] P, real v=<default>);
 path3 circle(triple c, real r, triple normal=<default>);
-marginT3 BeginPenMargin3(path3, pen);
 surface unitcube;
-real High;
 surface cone(path3 base, triple vertex);
 int size(void g(flatguide3));
-void drawarrow2(picture pic, arrowhead3 arrowhead=<default>, path3 g, material p=<default>, material arrowheadpen=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, marginT3 margin(path3, pen)=<default>, light light=<default>, light arrowheadlight=<default>, projection P=<default>);
 string defaultembed3Doptions;
 real camerafactor;
 real[][] bend(path3 g, real t);
 triple bend(triple p, path3 g, real scale);
 void bend(surface s, path3 g, real L);
+void drawarrow(picture pic, arrowhead3 arrowhead=<default>, path3 g, material p=<default>, material arrowheadpen=<default>, real size=<default>, real angle=<default>, position position=<default>, filltype filltype=<default>, bool forwards=<default>, marginT3 margin(path3, pen)=<default>, bool center=<default>, light light=<default>, light arrowheadlight=<default>, projection P=<default>);
 surface nullsurface;
+path3[] box(triple v1, triple v2);
+patch unitfrustum1(real ta, real tb);
+projection projection();
 light Viewport;
 real[][] t2;
 real position(position position, real size, path3 g, bool center);
 real angle(triple d0, triple d1, triple reference);
+real High;
 real[] intersect(path3 p, patch s, real fuzz=<default>);
 real[] intersect(path3 p, surface s, real fuzz=<default>);
 void pixel(picture pic=<default>, triple v, pen p=<default>, real width=<default>);
 real[][] flip(real[][] t, triple X, triple Y, triple Z, projection P);
-void _draw(frame f, path3 g, triple center=<default>, material m, light light=<default>, interaction interaction=<default>);
 arrowhead3 TeXHead2(triple normal=<default>);
 arrowhead3 TeXHead2;
-patch unitfrustum1(real ta, real tb);
-projection projection();
-void drawarrow(picture pic, arrowhead3 arrowhead=<default>, path3 g, material p=<default>, material arrowheadpen=<default>, real size=<default>, real angle=<default>, position position=<default>, filltype filltype=<default>, bool forwards=<default>, marginT3 margin(path3, pen)=<default>, bool center=<default>, light light=<default>, light arrowheadlight=<default>, projection P=<default>);
 bool operator ==(material m, material n);
 triple rectify(triple dir);
 string defaultembed3Dscript;
@@ -4173,12 +4173,12 @@
 int lookup(tree t, int key);
 bool contains(tree t, int key);
 tree newtree();
+tree add(tree t, int key, int value);
 void write(file out=<default>, tree t);
-tree add(tree t, int key, int value);
 real trembleFrequency;
 real trembleRandom;
+real magneticRadius;
 real trembleAngle;
-real magneticRadius;
 real trembleFuzz();
 int coloredNodes;
 path3 roundedpath(path3 A, real r);
@@ -4185,10 +4185,10 @@
 surface tube(path3 g, coloredpath section, transform T(real)=<default>, real corner=<default>, real relstep=<default>);
 int coloredSegments;
 real tubegranularity;
+surface surface(rmf[] R, real[] t, coloredpath cp, transform T(real), bool cyclic);
+real degrees(rmf a, rmf b);
 coloredpath operator cast(path p);
 coloredpath operator cast(guide p);
-surface surface(rmf[] R, real[] t, coloredpath cp, transform T(real), bool cyclic);
-real degrees(rmf a, rmf b);
 real[] sample(path3 g, real r, real relstep=<default>);
 void render(path3 s, real r, void f(path3, real));
 void importv3d(string name);
@@ -4259,52 +4259,50 @@
 pen DarkSlateBlue;
 pen DarkSeaGreen;
 pen DarkSalmon;
-pen Brown;
-pen SlateBlue;
+pen Aquamarine;
 pen FireBrick;
+pen White;
+pen Lime;
 pen Black;
+pen LightGreen;
 pen DeepPink;
 pen LightPink;
+pen LightSeaGreen;
 pen Navy;
-pen Aquamarine;
-pen SlateGray;
-pen LightYellow;
+pen SlateBlue;
 pen LightGrey;
 pen LemonChiffon;
 pen Wheat;
 pen Cyan;
+pen Brown;
+pen AliceBlue;
+pen Teal;
 pen Salmon;
 pen DimGray;
-pen Teal;
 pen Gray;
 pen DarkCyan;
-pen Sienna;
-pen White;
+pen Peru;
+pen DarkGray;
 pen AntiqueWhite;
 pen ForestGreen;
-pen Lime;
-pen Peru;
+pen Turquoise;
+pen DarkOrange;
+pen Sienna;
+pen LightYellow;
 pen Ivory;
 pen BlueViolet;
-pen AliceBlue;
-pen Coral;
-pen DarkRed;
-pen Crimson;
-pen Turquoise;
-pen Aqua;
-pen DarkOrchid;
+pen SlateGray;
 pen CadetBlue;
+pen LightSteelBlue;
+pen MediumAquamarine;
 pen Red;
 pen Azure;
-pen LightSteelBlue;
-pen MediumAquamarine;
-pen DarkOrange;
-pen DarkGray;
-pen LightSeaGreen;
 pen MediumBlue;
+pen Coral;
 pen MediumOrchid;
-pen LightGreen;
 pen Blue;
+pen DarkOrchid;
+pen Aqua;
 pen MediumSeaGreen;
 pen Orchid;
 pen PaleGreen;
@@ -4313,6 +4311,8 @@
 pen Yellow;
 pen SandyBrown;
 pen Chocolate;
+pen DarkRed;
+pen Crimson;
 pen Indigo;
 pen Tan;
 pen MediumVioletRed;
@@ -4320,10 +4320,10 @@
 pen DarkBlue;
 pen OliveDrab;
 pen Magenta;
+pen RoyalBlue;
 pen MistyRose;
 pen Honeydew;
 pen Chartreuse;
-pen RoyalBlue;
 pen DarkOliveGreen;
 pen SeaGreen;
 pen DarkTurquoise;

Modified: trunk/Build/source/utils/asymptote/asymptote.spec
===================================================================
--- trunk/Build/source/utils/asymptote/asymptote.spec	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/asymptote.spec	2025-02-11 21:53:03 UTC (rev 73901)
@@ -3,7 +3,7 @@
 %global __python %{__python3}
 
 Name:           asymptote
-Version:        2.98
+Version:        2.99
 Release:        1%{?dist}
 Summary:        Descriptive vector graphics language
 

Modified: trunk/Build/source/utils/asymptote/autogen.sh
===================================================================
--- trunk/Build/source/utils/asymptote/autogen.sh	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/autogen.sh	2025-02-11 21:53:03 UTC (rev 73901)
@@ -1,5 +1,14 @@
 #!/bin/sh
 
+command -v libtoolize >/dev/null 2>&1
+if  [ $? -ne 0 ]; then
+    command -v libtool >/dev/null 2>&1
+    if  [ $? -ne 0 ]; then
+        echo "autogen.sh: error: could not find libtool.  libtool is required to run autogen.sh." 1>&2
+        exit 1
+    fi
+fi
+
 autoheader && autoconf
 
 cd gc && ./autogen.sh

Modified: trunk/Build/source/utils/asymptote/config.guess
===================================================================
--- trunk/Build/source/utils/asymptote/config.guess	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/config.guess	2025-02-11 21:53:03 UTC (rev 73901)
@@ -4,7 +4,7 @@
 
 # shellcheck disable=SC2006,SC2268 # see below for rationale
 
-timestamp='2024-01-01'
+timestamp='2024-07-27'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -123,7 +123,7 @@
     dummy=$tmp/dummy
     case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
 	,,)    echo "int x;" > "$dummy.c"
-	       for driver in cc gcc c89 c99 ; do
+	       for driver in cc gcc c17 c99 c89 ; do
 		   if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
 		       CC_FOR_BUILD=$driver
 		       break
@@ -634,7 +634,8 @@
 		sed 's/^		//' << EOF > "$dummy.c"
 		#include <sys/systemcfg.h>
 
-		main()
+		int
+		main ()
 			{
 			if (!__power_pc())
 				exit(1);
@@ -718,7 +719,8 @@
 		#include <stdlib.h>
 		#include <unistd.h>
 
-		int main ()
+		int
+		main ()
 		{
 		#if defined(_SC_KERNEL_BITS)
 		    long bits = sysconf(_SC_KERNEL_BITS);
@@ -1621,6 +1623,7 @@
 #endif
 #endif
 #endif
+int
 main ()
 {
 #if defined (sony)

Modified: trunk/Build/source/utils/asymptote/config.sub
===================================================================
--- trunk/Build/source/utils/asymptote/config.sub	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/config.sub	2025-02-11 21:53:03 UTC (rev 73901)
@@ -2,9 +2,9 @@
 # Configuration validation subroutine script.
 #   Copyright 1992-2024 Free Software Foundation, Inc.
 
-# shellcheck disable=SC2006,SC2268 # see below for rationale
+# shellcheck disable=SC2006,SC2268,SC2162 # see below for rationale
 
-timestamp='2024-01-01'
+timestamp='2024-05-27'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -120,7 +120,6 @@
 esac
 
 # Split fields of configuration type
-# shellcheck disable=SC2162
 saved_IFS=$IFS
 IFS="-" read field1 field2 field3 field4 <<EOF
 $1
@@ -142,10 +141,20 @@
 		# parts
 		maybe_os=$field2-$field3
 		case $maybe_os in
-			nto-qnx* | linux-* | uclinux-uclibc* \
-			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
-			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
-			| storm-chaos* | os2-emx* | rtmk-nova* | managarm-* \
+			  cloudabi*-eabi* \
+			| kfreebsd*-gnu* \
+			| knetbsd*-gnu* \
+			| kopensolaris*-gnu* \
+			| linux-* \
+			| managarm-* \
+			| netbsd*-eabi* \
+			| netbsd*-gnu* \
+			| nto-qnx* \
+			| os2-emx* \
+			| rtmk-nova* \
+			| storm-chaos* \
+			| uclinux-gnu* \
+			| uclinux-uclibc* \
 			| windows-* )
 				basic_machine=$field1
 				basic_os=$maybe_os
@@ -161,8 +170,12 @@
 		esac
 		;;
 	*-*)
-		# A lone config we happen to match not fitting any pattern
 		case $field1-$field2 in
+			# Shorthands that happen to contain a single dash
+			convex-c[12] | convex-c3[248])
+				basic_machine=$field2-convex
+				basic_os=
+				;;
 			decstation-3100)
 				basic_machine=mips-dec
 				basic_os=
@@ -170,28 +183,88 @@
 			*-*)
 				# Second component is usually, but not always the OS
 				case $field2 in
-					# Prevent following clause from handling this valid os
+					# Do not treat sunos as a manufacturer
 					sun*os*)
 						basic_machine=$field1
 						basic_os=$field2
 						;;
+					# Manufacturers
+					  3100* \
+					| 32* \
+					| 3300* \
+					| 3600* \
+					| 7300* \
+					| acorn \
+					| altos* \
+					| apollo \
+					| apple \
+					| atari \
+					| att* \
+					| axis \
+					| be \
+					| bull \
+					| cbm \
+					| ccur \
+					| cisco \
+					| commodore \
+					| convergent* \
+					| convex* \
+					| cray \
+					| crds \
+					| dec* \
+					| delta* \
+					| dg \
+					| digital \
+					| dolphin \
+					| encore* \
+					| gould \
+					| harris \
+					| highlevel \
+					| hitachi* \
+					| hp \
+					| ibm* \
+					| intergraph \
+					| isi* \
+					| knuth \
+					| masscomp \
+					| microblaze* \
+					| mips* \
+					| motorola* \
+					| ncr* \
+					| news \
+					| next \
+					| ns \
+					| oki \
+					| omron* \
+					| pc533* \
+					| rebel \
+					| rom68k \
+					| rombug \
+					| semi \
+					| sequent* \
+					| siemens \
+					| sgi* \
+					| siemens \
+					| sim \
+					| sni \
+					| sony* \
+					| stratus \
+					| sun \
+					| sun[234]* \
+					| tektronix \
+					| tti* \
+					| ultra \
+					| unicom* \
+					| wec \
+					| winbond \
+					| wrs)
+						basic_machine=$field1-$field2
+						basic_os=
+						;;
 					zephyr*)
 						basic_machine=$field1-unknown
 						basic_os=$field2
 						;;
-					# Manufacturers
-					dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
-					| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
-					| unicom* | ibm* | next | hp | isi* | apollo | altos* \
-					| convergent* | ncr* | news | 32* | 3600* | 3100* \
-					| hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
-					| ultra | tti* | harris | dolphin | highlevel | gould \
-					| cbm | ns | masscomp | apple | axis | knuth | cray \
-					| microblaze* | sim | cisco \
-					| oki | wec | wrs | winbond)
-						basic_machine=$field1-$field2
-						basic_os=
-						;;
 					*)
 						basic_machine=$field1
 						basic_os=$field2
@@ -272,26 +345,6 @@
 				basic_machine=arm-unknown
 				basic_os=cegcc
 				;;
-			convex-c1)
-				basic_machine=c1-convex
-				basic_os=bsd
-				;;
-			convex-c2)
-				basic_machine=c2-convex
-				basic_os=bsd
-				;;
-			convex-c32)
-				basic_machine=c32-convex
-				basic_os=bsd
-				;;
-			convex-c34)
-				basic_machine=c34-convex
-				basic_os=bsd
-				;;
-			convex-c38)
-				basic_machine=c38-convex
-				basic_os=bsd
-				;;
 			cray)
 				basic_machine=j90-cray
 				basic_os=unicos
@@ -714,16 +767,27 @@
 		vendor=dec
 		basic_os=tops20
 		;;
-	delta | 3300 | motorola-3300 | motorola-delta \
-	      | 3300-motorola | delta-motorola)
+	delta | 3300 | delta-motorola | 3300-motorola | motorola-delta | motorola-3300)
 		cpu=m68k
 		vendor=motorola
 		;;
-	dpx2*)
+	# This used to be dpx2*, but that gets the RS6000-based
+	# DPX/20 and the x86-based DPX/2-100 wrong.  See
+	# https://oldskool.silicium.org/stations/bull_dpx20.htm
+	# https://www.feb-patrimoine.com/english/bull_dpx2.htm
+	# https://www.feb-patrimoine.com/english/unix_and_bull.htm
+	dpx2 | dpx2[23]00 | dpx2[23]xx)
 		cpu=m68k
 		vendor=bull
-		basic_os=sysv3
 		;;
+	dpx2100 | dpx21xx)
+		cpu=i386
+		vendor=bull
+		;;
+	dpx20)
+		cpu=rs6000
+		vendor=bull
+		;;
 	encore | umax | mmax)
 		cpu=ns32k
 		vendor=encore
@@ -837,18 +901,6 @@
 	next | m*-next)
 		cpu=m68k
 		vendor=next
-		case $basic_os in
-		    openstep*)
-		        ;;
-		    nextstep*)
-			;;
-		    ns2*)
-		      basic_os=nextstep2
-			;;
-		    *)
-		      basic_os=nextstep3
-			;;
-		esac
 		;;
 	np1)
 		cpu=np1
@@ -937,7 +989,6 @@
 		;;
 
 	*-*)
-		# shellcheck disable=SC2162
 		saved_IFS=$IFS
 		IFS="-" read cpu vendor <<EOF
 $basic_machine
@@ -972,8 +1023,12 @@
 
 # Decode basic machines in the full and proper CPU-Company form.
 case $cpu-$vendor in
-	# Here we handle the default manufacturer of certain CPU types in canonical form. It is in
-	# some cases the only manufacturer, in others, it is the most popular.
+	# Here we handle the default manufacturer of certain CPU types in canonical form.
+	# It is in some cases the only manufacturer, in others, it is the most popular.
+	c[12]-convex | c[12]-unknown | c3[248]-convex | c3[248]-unknown)
+		vendor=convex
+		basic_os=${basic_os:-bsd}
+		;;
 	craynv-unknown)
 		vendor=cray
 		basic_os=${basic_os:-unicosmp}
@@ -980,7 +1035,7 @@
 		;;
 	c90-unknown | c90-cray)
 		vendor=cray
-		basic_os=${Basic_os:-unicos}
+		basic_os=${basic_os:-unicos}
 		;;
 	fx80-unknown)
 		vendor=alliant
@@ -1026,11 +1081,29 @@
 		vendor=alt
 		basic_os=${basic_os:-linux-gnueabihf}
 		;;
-	dpx20-unknown | dpx20-bull)
-		cpu=rs6000
-		vendor=bull
+
+	# Normalized CPU+vendor pairs that imply an OS, if not otherwise specified
+	m68k-isi)
+		basic_os=${basic_os:-sysv}
+		;;
+	m68k-sony)
+		basic_os=${basic_os:-newsos}
+		;;
+	m68k-tektronix)
+		basic_os=${basic_os:-bsd}
+		;;
+	m88k-harris)
+		basic_os=${basic_os:-sysv3}
+		;;
+	i386-bull | m68k-bull)
+		basic_os=${basic_os:-sysv3}
+		;;
+	rs6000-bull)
 		basic_os=${basic_os:-bosx}
 		;;
+	mips-sni)
+		basic_os=${basic_os:-sysv4}
+		;;
 
 	# Here we normalize CPU types irrespective of the vendor
 	amd64-*)
@@ -1038,7 +1111,7 @@
 		;;
 	blackfin-*)
 		cpu=bfin
-		basic_os=linux
+		basic_os=${basic_os:-linux}
 		;;
 	c54x-*)
 		cpu=tic54x
@@ -1061,7 +1134,7 @@
 		;;
 	m68knommu-*)
 		cpu=m68k
-		basic_os=linux
+		basic_os=${basic_os:-linux}
 		;;
 	m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
 		cpu=s12z
@@ -1071,7 +1144,7 @@
 		;;
 	parisc-*)
 		cpu=hppa
-		basic_os=linux
+		basic_os=${basic_os:-linux}
 		;;
 	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
 		cpu=i586
@@ -1085,9 +1158,6 @@
 	pentium4-*)
 		cpu=i786
 		;;
-	pc98-*)
-		cpu=i386
-		;;
 	ppc-* | ppcbe-*)
 		cpu=powerpc
 		;;
@@ -1121,9 +1191,6 @@
 	tx39el-*)
 		cpu=mipstx39el
 		;;
-	x64-*)
-		cpu=x86_64
-		;;
 	xscale-* | xscalee[bl]-*)
 		cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
 		;;
@@ -1179,90 +1246,227 @@
 		# Recognize the canonical CPU types that are allowed with any
 		# company name.
 		case $cpu in
-			1750a | 580 \
+			  1750a \
+			| 580 \
+			| [cjt]90 \
 			| a29k \
-			| aarch64 | aarch64_be | aarch64c | arm64ec \
+			| aarch64 \
+			| aarch64_be \
+			| aarch64c \
 			| abacus \
-			| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
-			| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
-			| alphapca5[67] | alpha64pca5[67] \
+			| alpha \
+			| alpha64 \
+			| alpha64ev56 \
+			| alpha64ev6[78] \
+			| alpha64ev[4-8] \
+			| alpha64pca5[67] \
+			| alphaev56 \
+			| alphaev6[78] \
+			| alphaev[4-8] \
+			| alphapca5[67] \
 			| am33_2.0 \
 			| amdgcn \
-			| arc | arceb | arc32 | arc64 \
-			| arm | arm[lb]e | arme[lb] | armv* \
-			| avr | avr32 \
+			| arc \
+			| arc32 \
+			| arc64 \
+			| arceb \
+			| arm \
+			| arm64e \
+			| arm64ec \
+			| arm[lb]e \
+			| arme[lb] \
+			| armv* \
 			| asmjs \
+			| avr \
+			| avr32 \
 			| ba \
-			| be32 | be64 \
-			| bfin | bpf | bs2000 \
-			| c[123]* | c30 | [cjt]90 | c4x \
-			| c8051 | clipper | craynv | csky | cydra \
-			| d10v | d30v | dlx | dsp16xx \
-			| e2k | elxsi | epiphany \
-			| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
+			| be32 \
+			| be64 \
+			| bfin \
+			| bpf \
+			| bs2000 \
+			| c30 \
+			| c4x \
+			| c8051 \
+			| c[123]* \
+			| clipper \
+			| craynv \
+			| csky \
+			| cydra \
+			| d10v \
+			| d30v \
+			| dlx \
+			| dsp16xx \
+			| e2k \
+			| elxsi \
+			| epiphany \
+			| f30[01] \
+			| f700 \
+			| fido \
+			| fr30 \
+			| frv \
+			| ft32 \
+			| fx80 \
+			| h8300 \
+			| h8500 \
+			| hexagon \
+			| hppa \
+			| hppa1.[01] \
+			| hppa2.0 \
+			| hppa2.0[nw] \
+			| hppa64 \
+			| i*86 \
+			| i370 \
+			| i860 \
+			| i960 \
+			| ia16 \
+			| ia64 \
+			| ip2k \
+			| iq2000 \
 			| javascript \
-			| h8300 | h8500 \
-			| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
-			| hexagon \
-			| i370 | i*86 | i860 | i960 | ia16 | ia64 \
-			| ip2k | iq2000 \
 			| k1om \
 			| kvx \
-			| le32 | le64 \
+			| le32 \
+			| le64 \
 			| lm32 \
-			| loongarch32 | loongarch64 \
-			| m32c | m32r | m32rle \
-			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
-			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
-			| m88110 | m88k | maxq | mb | mcore | mep | metag \
-			| microblaze | microblazeel \
+			| loongarch32 \
+			| loongarch64 \
+			| m32c \
+			| m32r \
+			| m32rle \
+			| m5200 \
+			| m68000 \
+			| m680[012346]0 \
+			| m6811 \
+			| m6812 \
+			| m68360 \
+			| m683?2 \
+			| m68hc11 \
+			| m68hc12 \
+			| m68hcs12x \
+			| m68k \
+			| m88110 \
+			| m88k \
+			| maxq \
+			| mb \
+			| mcore \
+			| mep \
+			| metag \
+			| microblaze \
+			| microblazeel \
 			| mips* \
 			| mmix \
-			| mn10200 | mn10300 \
+			| mn10200 \
+			| mn10300 \
 			| moxie \
+			| msp430 \
 			| mt \
-			| msp430 \
 			| nanomips* \
-			| nds32 | nds32le | nds32be \
+			| nds32 \
+			| nds32be \
+			| nds32le \
 			| nfp \
-			| nios | nios2 | nios2eb | nios2el \
-			| none | np1 | ns16k | ns32k | nvptx \
+			| nios \
+			| nios2 \
+			| nios2eb \
+			| nios2el \
+			| none \
+			| np1 \
+			| ns16k \
+			| ns32k \
+			| nvptx \
 			| open8 \
 			| or1k* \
 			| or32 \
 			| orion \
+			| pdp10 \
+			| pdp11 \
 			| picochip \
-			| pdp10 | pdp11 | pj | pjl | pn | power \
-			| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
+			| pj \
+			| pjl \
+			| pn \
+			| power \
+			| powerpc \
+			| powerpc64 \
+			| powerpc64le \
+			| powerpcle \
+			| powerpcspe \
 			| pru \
 			| pyramid \
-			| riscv | riscv32 | riscv32be | riscv64 | riscv64be \
-			| rl78 | romp | rs6000 | rx \
-			| s390 | s390x \
+			| riscv \
+			| riscv32 \
+			| riscv32be \
+			| riscv64 \
+			| riscv64be \
+			| rl78 \
+			| romp \
+			| rs6000 \
+			| rx \
+			| s390 \
+			| s390x \
 			| score \
-			| sh | shl \
-			| sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
-			| sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
-			| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
+			| sh \
+			| sh64 \
+			| sh64le \
+			| sh[12345][lb]e \
+			| sh[1234] \
+			| sh[1234]e[lb] \
+			| sh[23]e \
+			| sh[23]ele \
+			| sh[24]a \
+			| sh[24]ae[lb] \
+			| sh[lb]e \
+			| she[lb] \
+			| shl \
+			| sparc \
+			| sparc64 \
+			| sparc64b \
+			| sparc64v \
+			| sparc86x \
+			| sparclet \
 			| sparclite \
-			| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
+			| sparcv8 \
+			| sparcv9 \
+			| sparcv9b \
+			| sparcv9v \
 			| spu \
+			| sv1 \
+			| sx* \
 			| tahoe \
 			| thumbv7* \
-			| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
+			| tic30 \
+			| tic4x \
+			| tic54x \
+			| tic55x \
+			| tic6x \
+			| tic80 \
 			| tron \
 			| ubicom32 \
-			| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
+			| v70 \
+			| v810 \
+			| v850 \
+			| v850e \
+			| v850e1 \
+			| v850e2 \
+			| v850e2v3 \
+			| v850es \
 			| vax \
 			| vc4 \
 			| visium \
 			| w65 \
-			| wasm32 | wasm64 \
+			| wasm32 \
+			| wasm64 \
 			| we32k \
-			| x86 | x86_64 | xc16x | xgate | xps100 \
-			| xstormy16 | xtensa* \
+			| x86 \
+			| x86_64 \
+			| xc16x \
+			| xgate \
+			| xps100 \
+			| xstormy16 \
+			| xtensa* \
 			| ymp \
-			| z8k | z80)
+			| z80 \
+			| z8k)
 				;;
 
 			*)
@@ -1307,7 +1511,6 @@
 		os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
 		;;
 	*-*)
-		# shellcheck disable=SC2162
 		saved_IFS=$IFS
 		IFS="-" read kernel os <<EOF
 $basic_os
@@ -1354,6 +1557,23 @@
 	unixware*)
 		os=sysv4.2uw
 		;;
+	# The marketing names for NeXT's operating systems were
+	# NeXTSTEP, NeXTSTEP 2, OpenSTEP 3, OpenSTEP 4.  'openstep' is
+	# mapped to 'openstep3', but 'openstep1' and 'openstep2' are
+	# mapped to 'nextstep' and 'nextstep2', consistent with the
+	# treatment of SunOS/Solaris.
+	ns | ns1 | nextstep | nextstep1 | openstep1)
+		os=nextstep
+		;;
+	ns2 | nextstep2 | openstep2)
+		os=nextstep2
+		;;
+	ns3 | nextstep3 | openstep | openstep3)
+		os=openstep3
+		;;
+	ns4 | nextstep4 | openstep4)
+		os=openstep4
+		;;
 	# es1800 is here to avoid being matched by es* (a different OS)
 	es1800*)
 		os=ose
@@ -1424,6 +1644,7 @@
 		;;
 	utek*)
 		os=bsd
+		vendor=`echo "$vendor" | sed -e 's|^unknown$|tektronix|'`
 		;;
 	dynix*)
 		os=bsd
@@ -1440,21 +1661,25 @@
 	386bsd)
 		os=bsd
 		;;
-	ctix* | uts*)
+	ctix*)
 		os=sysv
+		vendor=`echo "$vendor" | sed -e 's|^unknown$|convergent|'`
 		;;
+	uts*)
+		os=sysv
+		;;
 	nova*)
-		os=rtmk-nova
+		kernel=rtmk
+		os=nova
 		;;
-	ns2)
-		os=nextstep2
-		;;
 	# Preserve the version number of sinix5.
 	sinix5.*)
 		os=`echo "$os" | sed -e 's|sinix|sysv|'`
+		vendor=`echo "$vendor" | sed -e 's|^unknown$|sni|'`
 		;;
 	sinix*)
 		os=sysv4
+		vendor=`echo "$vendor" | sed -e 's|^unknown$|sni|'`
 		;;
 	tpf*)
 		os=tpf
@@ -1595,6 +1820,14 @@
 		os=
 		obj=elf
 		;;
+	# The -sgi and -siemens entries must be before the mips- entry
+	# or we get the wrong os.
+	*-sgi)
+		os=irix
+		;;
+	*-siemens)
+		os=sysv4
+		;;
 	mips*-cisco)
 		os=
 		obj=elf
@@ -1607,7 +1840,8 @@
 		os=
 		obj=coff
 		;;
-	*-tti)	# must be before sparc entry or we get the wrong os.
+	# This must be before the sparc-* entry or we get the wrong os.
+	*-tti)
 		os=sysv3
 		;;
 	sparc-* | *-sun)
@@ -1639,7 +1873,7 @@
 		os=hpux
 		;;
 	*-hitachi)
-		os=hiux
+		os=hiuxwe2
 		;;
 	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
 		os=sysv
@@ -1683,12 +1917,6 @@
 	*-encore)
 		os=bsd
 		;;
-	*-sgi)
-		os=irix
-		;;
-	*-siemens)
-		os=sysv4
-		;;
 	*-masscomp)
 		os=rtu
 		;;
@@ -1735,40 +1963,193 @@
 	ghcjs)
 		;;
 	# Now accept the basic system types.
-	# The portable systems comes first.
 	# Each alternative MUST end in a * to match a version number.
-	gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
-	     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
-	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
-	     | sym* |  plan9* | psp* | sim* | xray* | os68k* | v88r* \
-	     | hiux* | abug | nacl* | netware* | windows* \
-	     | os9* | macos* | osx* | ios* | tvos* | watchos* \
-	     | mpw* | magic* | mmixware* | mon960* | lnews* \
-	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
-	     | aos* | aros* | cloudabi* | sortix* | twizzler* \
-	     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
-	     | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
-	     | mirbsd* | netbsd* | dicos* | openedition* | ose* \
-	     | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
-	     | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
-	     | bosx* | nextstep* | cxux* | oabi* \
-	     | ptx* | ecoff* | winnt* | domain* | vsta* \
-	     | udi* | lites* | ieee* | go32* | aux* | hcos* \
-	     | chorusrdb* | cegcc* | glidix* | serenity* \
-	     | cygwin* | msys* | moss* | proelf* | rtems* \
-	     | midipix* | mingw32* | mingw64* | mint* \
-	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
-	     | interix* | uwin* | mks* | rhapsody* | darwin* \
-	     | openstep* | oskit* | conix* | pw32* | nonstopux* \
-	     | storm-chaos* | tops10* | tenex* | tops20* | its* \
-	     | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
-	     | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
-	     | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
-	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
-	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
-	     | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
-	     | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
-	     | fiwix* | mlibc* | cos* | mbr* | ironclad* )
+	  abug \
+	| aix* \
+	| amdhsa* \
+	| amigados* \
+	| amigaos* \
+	| android* \
+	| aof* \
+	| aos* \
+	| aros* \
+	| atheos* \
+	| auroraux* \
+	| aux* \
+	| beos* \
+	| bitrig* \
+	| bme* \
+	| bosx* \
+	| bsd* \
+	| cegcc* \
+	| chorusos* \
+	| chorusrdb* \
+	| clix* \
+	| cloudabi* \
+	| cnk* \
+	| conix* \
+	| cos* \
+	| cxux* \
+	| cygwin* \
+	| darwin* \
+	| dgux* \
+	| dicos* \
+	| dnix* \
+	| domain* \
+	| dragonfly* \
+	| drops* \
+	| ebmon* \
+	| ecoff* \
+	| ekkobsd* \
+	| emscripten* \
+	| emx* \
+	| es* \
+	| fiwix* \
+	| freebsd* \
+	| fuchsia* \
+	| genix* \
+	| genode* \
+	| glidix* \
+	| gnu* \
+	| go32* \
+	| haiku* \
+	| hcos* \
+	| hiux* \
+	| hms* \
+	| hpux* \
+	| ieee* \
+	| interix* \
+	| ios* \
+	| iris* \
+	| irix* \
+	| ironclad* \
+	| isc* \
+	| its* \
+	| l4re* \
+	| libertybsd* \
+	| lites* \
+	| lnews* \
+	| luna* \
+	| lynxos* \
+	| mach* \
+	| macos* \
+	| magic* \
+	| mbr* \
+	| midipix* \
+	| midnightbsd* \
+	| mingw32* \
+	| mingw64* \
+	| minix* \
+	| mint* \
+	| mirbsd* \
+	| mks* \
+	| mlibc* \
+	| mmixware* \
+	| mon960* \
+	| morphos* \
+	| moss* \
+	| moxiebox* \
+	| mpeix* \
+	| mpw* \
+	| msdos* \
+	| msys* \
+	| mvs* \
+	| nacl* \
+	| netbsd* \
+	| netware* \
+	| newsos* \
+	| nextstep* \
+	| nindy* \
+	| nonstopux* \
+	| nova* \
+	| nsk* \
+	| nucleus* \
+	| nx6 \
+	| nx7 \
+	| oabi* \
+	| ohos* \
+	| onefs* \
+	| openbsd* \
+	| openedition* \
+	| openstep* \
+	| os108* \
+	| os2* \
+	| os400* \
+	| os68k* \
+	| os9* \
+	| ose* \
+	| osf* \
+	| oskit* \
+	| osx* \
+	| palmos* \
+	| phoenix* \
+	| plan9* \
+	| powermax* \
+	| powerunix* \
+	| proelf* \
+	| psos* \
+	| psp* \
+	| ptx* \
+	| pw32* \
+	| qnx* \
+	| rdos* \
+	| redox* \
+	| rhapsody* \
+	| riscix* \
+	| riscos* \
+	| rtems* \
+	| rtmk* \
+	| rtu* \
+	| scout* \
+	| secbsd* \
+	| sei* \
+	| serenity* \
+	| sim* \
+	| skyos* \
+	| solaris* \
+	| solidbsd* \
+	| sortix* \
+	| storm-chaos* \
+	| sunos \
+	| sunos[34]* \
+	| superux* \
+	| syllable* \
+	| sym* \
+	| sysv* \
+	| tenex* \
+	| tirtos* \
+	| toppers* \
+	| tops10* \
+	| tops20* \
+	| tpf* \
+	| tvos* \
+	| twizzler* \
+	| uclinux* \
+	| udi* \
+	| udk* \
+	| ultrix* \
+	| unicos* \
+	| uniplus* \
+	| unleashed* \
+	| unos* \
+	| uwin* \
+	| uxpv* \
+	| v88r* \
+	|*vms* \
+	| vos* \
+	| vsta* \
+	| vxsim* \
+	| vxworks* \
+	| wasi* \
+	| watchos* \
+	| wince* \
+	| windiss* \
+	| windows* \
+	| winnt* \
+	| xenix* \
+	| xray* \
+	| zephyr* \
+	| zvmoe* )
 		;;
 	# This one is extra strict with allowed versions
 	sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
@@ -1829,9 +2210,9 @@
 case $kernel-$os-$obj in
 	linux-gnu*- | linux-android*- | linux-dietlibc*- | linux-llvm*- \
 		    | linux-mlibc*- | linux-musl*- | linux-newlib*- \
-		    | linux-relibc*- | linux-uclibc*- )
+		    | linux-relibc*- | linux-uclibc*- | linux-ohos*- )
 		;;
-	uclinux-uclibc*- )
+	uclinux-uclibc*- | uclinux-gnu*- )
 		;;
 	managarm-mlibc*- | managarm-kernel*- )
 		;;
@@ -1856,7 +2237,7 @@
 		echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2
 		exit 1
 		;;
-	kfreebsd*-gnu*- | kopensolaris*-gnu*-)
+	kfreebsd*-gnu*- | knetbsd*-gnu*- | netbsd*-gnu*- | kopensolaris*-gnu*-)
 		;;
 	vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-)
 		;;
@@ -1864,6 +2245,8 @@
 		;;
 	os2-emx-)
 		;;
+	rtmk-nova-)
+		;;
 	*-eabi*- | *-gnueabi*-)
 		;;
 	none--*)
@@ -1890,7 +2273,7 @@
 			*-riscix*)
 				vendor=acorn
 				;;
-			*-sunos*)
+			*-sunos* | *-solaris*)
 				vendor=sun
 				;;
 			*-cnk* | *-aix*)

Modified: trunk/Build/source/utils/asymptote/configure
===================================================================
--- trunk/Build/source/utils/asymptote/configure	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/configure	2025-02-11 21:53:03 UTC (rev 73901)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for Asymptote 2.98.
+# Generated by GNU Autoconf 2.71 for Asymptote 2.99.
 #
 # Report bugs to <https://github.com/vectorgraphics/asymptote/issues>.
 #
@@ -611,8 +611,8 @@
 # Identity of this package.
 PACKAGE_NAME='Asymptote'
 PACKAGE_TARNAME='asymptote'
-PACKAGE_VERSION='2.98'
-PACKAGE_STRING='Asymptote 2.98'
+PACKAGE_VERSION='2.99'
+PACKAGE_STRING='Asymptote 2.99'
 PACKAGE_BUGREPORT='https://github.com/vectorgraphics/asymptote/issues'
 PACKAGE_URL=''
 
@@ -710,7 +710,6 @@
 build_vendor
 build_cpu
 build
-LIBTOOL
 VERSION
 target_alias
 host_alias
@@ -1338,7 +1337,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures Asymptote 2.98 to adapt to many kinds of systems.
+\`configure' configures Asymptote 2.99 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1405,7 +1404,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of Asymptote 2.98:";;
+     short | recursive ) echo "Configuration of Asymptote 2.99:";;
    esac
   cat <<\_ACEOF
 
@@ -1530,7 +1529,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-Asymptote configure 2.98
+Asymptote configure 2.99
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2010,7 +2009,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by Asymptote $as_me 2.98, which was
+It was created by Asymptote $as_me 2.99, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -3118,59 +3117,11 @@
 
 
 
-# Extract the first word of "libtool", so it can be a program name with args.
-set dummy libtool; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_LIBTOOL+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$LIBTOOL"; then
-  ac_cv_prog_LIBTOOL="$LIBTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
-    ac_cv_prog_LIBTOOL="yes"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
 
-  test -z "$ac_cv_prog_LIBTOOL" && ac_cv_prog_LIBTOOL="no"
-fi
-fi
-LIBTOOL=$ac_cv_prog_LIBTOOL
-if test -n "$LIBTOOL"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIBTOOL" >&5
-printf "%s\n" "$LIBTOOL" >&6; }
-else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
 
 
-if test "x$LIBTOOL" = "xno"
-then :
-  as_fn_error $? "libtool not found" "$LINENO" 5
-fi
 
 
-
-
-
-
   # Make sure we can run config.sub.
 $SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 ||
   as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5
@@ -7036,7 +6987,7 @@
 # -------------- threads -------------------
 
 
-GCOPTIONS="--disable-shared "
+GCOPTIONS="--disable-shared --disable-dependency-tracking"
 # Check whether --enable-threads was given.
 if test ${enable_threads+y}
 then :
@@ -10590,7 +10541,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by Asymptote $as_me 2.98, which was
+This file was extended by Asymptote $as_me 2.99, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -10654,7 +10605,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-Asymptote config.status 2.98
+Asymptote config.status 2.99
 configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 

Modified: trunk/Build/source/utils/asymptote/configure.ac
===================================================================
--- trunk/Build/source/utils/asymptote/configure.ac	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/configure.ac	2025-02-11 21:53:03 UTC (rev 73901)
@@ -3,15 +3,12 @@
 # this file.
 
 AC_PREREQ([2.71])
-AC_INIT([Asymptote],[2.98],[https://github.com/vectorgraphics/asymptote/issues])
+AC_INIT([Asymptote],[2.99],[https://github.com/vectorgraphics/asymptote/issues])
 VERSION=$PACKAGE_VERSION
 AC_SUBST(VERSION)
 m4_include([ax_pthread.m4])
 m4_include([pkg.m4])
 
-AC_CHECK_PROG([LIBTOOL], [libtool], [yes], [no])
-AS_IF([test "x$LIBTOOL" = "xno"], [AC_MSG_ERROR([libtool not found])])
-
 AH_TOP([#pragma once])
 
 AC_CANONICAL_HOST
@@ -296,7 +293,7 @@
 # -------------- threads -------------------
 
 
-GCOPTIONS="--disable-shared "
+GCOPTIONS="--disable-shared --disable-dependency-tracking"
 AC_ARG_ENABLE(
    threads,
    [AS_HELP_STRING(--enable-threads[[[=yes]]],enable POSIX threads)]

Modified: trunk/Build/source/utils/asymptote/doc/CAD.pdf
===================================================================
(Binary files differ)

Modified: trunk/Build/source/utils/asymptote/doc/FAQ/asy-faq.info
===================================================================
--- trunk/Build/source/utils/asymptote/doc/FAQ/asy-faq.info	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/doc/FAQ/asy-faq.info	2025-02-11 21:53:03 UTC (rev 73901)
@@ -10,7 +10,7 @@
 File: asy-faq.info, Node: Top, Next: Question 1.1, Up: (dir)
 
             ASYMPTOTE FREQUENTLY ASKED QUESTIONS
-                            2025-02-09
+                            2025-02-10
                           
 This is the list of Frequently Asked Questions about Asymptote (asy).
 

Modified: trunk/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf
===================================================================
(Binary files differ)

Modified: trunk/Build/source/utils/asymptote/doc/asy-latex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Build/source/utils/asymptote/doc/asyRefCard.pdf
===================================================================
(Binary files differ)

Modified: trunk/Build/source/utils/asymptote/doc/asymptote.pdf
===================================================================
(Binary files differ)

Modified: trunk/Build/source/utils/asymptote/doc/png/asymptote.info
===================================================================
--- trunk/Build/source/utils/asymptote/doc/png/asymptote.info	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/doc/png/asymptote.info	2025-02-11 21:53:03 UTC (rev 73901)
@@ -1,7 +1,7 @@
 This is asymptote.info, produced by makeinfo version 7.1 from
 asymptote.texi.
 
-This file documents ‘Asymptote’, version 2.98.
+This file documents ‘Asymptote’, version 2.99.
 
    <https://asymptote.sourceforge.io>
 
@@ -22,7 +22,7 @@
 Asymptote
 *********
 
-This file documents ‘Asymptote’, version 2.98.
+This file documents ‘Asymptote’, version 2.99.
 
    <https://asymptote.sourceforge.io>
 

Modified: trunk/Build/source/utils/asymptote/gc/autom4te.cache/requests
===================================================================
--- trunk/Build/source/utils/asymptote/gc/autom4te.cache/requests	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/gc/autom4te.cache/requests	2025-02-11 21:53:03 UTC (rev 73901)
@@ -43,188 +43,188 @@
                         'configure.ac'
                       ],
                       {
-                        'LT_PROG_GO' => 1,
+                        '_LT_AC_LANG_CXX' => 1,
+                        'AC_LIB_LTDL' => 1,
+                        'LT_CMD_MAX_LEN' => 1,
+                        'AC_LIBTOOL_PICMODE' => 1,
+                        '_LT_AC_LANG_F77' => 1,
+                        'AC_DEFUN_ONCE' => 1,
+                        'AM_SUBST_NOTMAKE' => 1,
                         'LT_LANG' => 1,
-                        'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
+                        'LTDL_INIT' => 1,
+                        'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+                        'AC_LIBTOOL_FC' => 1,
+                        '_LT_AC_TRY_DLOPEN_SELF' => 1,
+                        'GC_SET_VERSION' => 1,
+                        'LT_OUTPUT' => 1,
+                        'AM_CONDITIONAL' => 1,
+                        '_LT_PREPARE_SED_QUOTE_VARS' => 1,
+                        '_LT_CC_BASENAME' => 1,
+                        'AC_PROG_LD_RELOAD_FLAG' => 1,
+                        'LT_LIB_M' => 1,
+                        'AC_LIBTOOL_OBJDIR' => 1,
+                        'AC_WITH_LTDL' => 1,
+                        'LT_INIT' => 1,
+                        'AM_PROG_LIBTOOL' => 1,
+                        '_LT_AC_TAGCONFIG' => 1,
+                        'AC_PROG_LD' => 1,
+                        'AM_MAINTAINER_MODE' => 1,
                         'AC_LIBTOOL_DLOPEN_SELF' => 1,
-                        '_LT_AC_LANG_GCJ' => 1,
-                        'AM_PROG_LD' => 1,
-                        'AC_LIBTOOL_CONFIG' => 1,
-                        '_LT_AC_SYS_LIBPATH_AIX' => 1,
-                        'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+                        'AC_CHECK_LIBM' => 1,
+                        'AC_LIBTOOL_GCJ' => 1,
+                        'AC_PATH_MAGIC' => 1,
+                        'AM_DISABLE_SHARED' => 1,
+                        'LT_AC_PROG_SED' => 1,
+                        'LT_AC_PROG_EGREP' => 1,
                         '_LT_AC_LANG_RC_CONFIG' => 1,
-                        '_LT_COMPILER_OPTION' => 1,
-                        'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
-                        'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
-                        '_LT_AC_LANG_F77_CONFIG' => 1,
-                        'LT_INIT' => 1,
-                        'AC_LTDL_SHLIBEXT' => 1,
-                        'AM_PROG_INSTALL_SH' => 1,
-                        '_LT_PROG_CXX' => 1,
-                        'AC_LTDL_SYSSEARCHPATH' => 1,
-                        'AC_DEPLIBS_CHECK_METHOD' => 1,
+                        'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
+                        'AC_PATH_TOOL_PREFIX' => 1,
                         'AM_MISSING_HAS_RUN' => 1,
-                        'AC_LIBTOOL_DLOPEN' => 1,
-                        'LT_SYS_MODULE_EXT' => 1,
-                        '_LT_AC_CHECK_DLFCN' => 1,
-                        'LT_SYS_SYMBOL_USCORE' => 1,
-                        'AC_LIBTOOL_LANG_C_CONFIG' => 1,
-                        '_LT_PROG_FC' => 1,
-                        'AC_LIBTOOL_CXX' => 1,
-                        'AC_LTDL_ENABLE_INSTALL' => 1,
-                        'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
-                        'LT_WITH_LTDL' => 1,
-                        'LT_SYS_DLOPEN_DEPLIBS' => 1,
-                        'LT_FUNC_ARGZ' => 1,
-                        '_LT_CC_BASENAME' => 1,
-                        'LT_SUPPORTED_TAG' => 1,
-                        'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
-                        '_LT_PROG_LTMAIN' => 1,
+                        'AM_MAKE_INCLUDE' => 1,
+                        '_LT_AC_SHELL_INIT' => 1,
+                        'AC_LTDL_DLSYM_USCORE' => 1,
                         'AM_PROG_CC_C_O' => 1,
-                        '_AC_PROG_LIBTOOL' => 1,
-                        'AM_DISABLE_SHARED' => 1,
-                        'AM_SUBST_NOTMAKE' => 1,
-                        'AM_DEP_TRACK' => 1,
-                        'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
-                        '_AM_SET_OPTIONS' => 1,
+                        'AC_LIBTOOL_PROG_CC_C_O' => 1,
+                        'AC_LIBTOOL_RC' => 1,
+                        '_LT_DLL_DEF_P' => 1,
+                        'AC_LIBTOOL_WIN32_DLL' => 1,
+                        '_LTDL_SETUP' => 1,
+                        'AC_PROG_LD_GNU' => 1,
                         'm4_pattern_allow' => 1,
-                        'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
-                        'AC_LTDL_DLSYM_USCORE' => 1,
-                        'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
-                        'LT_OUTPUT' => 1,
+                        'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
+                        'LT_SYS_DLOPEN_DEPLIBS' => 1,
                         'AC_DEFUN' => 1,
+                        '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+                        'LT_SYS_DLOPEN_SELF' => 1,
+                        'LT_FUNC_DLSYM_USCORE' => 1,
+                        'LT_PATH_LD' => 1,
+                        'AM_AUTOMAKE_VERSION' => 1,
+                        'AC_LTDL_DLLIB' => 1,
                         '_LT_AC_LANG_CXX_CONFIG' => 1,
-                        'LTDL_INSTALLABLE' => 1,
-                        'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
-                        'AC_DISABLE_FAST_INSTALL' => 1,
-                        'LTOPTIONS_VERSION' => 1,
-                        'AC_LIB_LTDL' => 1,
-                        'LT_LIB_DLLOAD' => 1,
-                        'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
-                        'LT_FUNC_DLSYM_USCORE' => 1,
-                        'AM_CONDITIONAL' => 1,
-                        'AC_DEFUN_ONCE' => 1,
-                        '_LT_AC_SYS_COMPILER' => 1,
-                        'AC_CONFIG_MACRO_DIR' => 1,
-                        'AC_PROG_LIBTOOL' => 1,
-                        '_LT_AC_TAGVAR' => 1,
-                        'AC_LTDL_SYMBOL_USCORE' => 1,
-                        'AC_LIBTOOL_LINKER_OPTION' => 1,
+                        'LTDL_CONVENIENCE' => 1,
+                        '_LT_PROG_F77' => 1,
+                        'AC_LIBTOOL_COMPILER_OPTION' => 1,
+                        '_AC_AM_CONFIG_HEADER_HOOK' => 1,
+                        '_LT_AC_LANG_F77_CONFIG' => 1,
+                        'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
+                        'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
+                        'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
+                        'AM_SET_LEADING_DOT' => 1,
+                        '_LT_AC_FILE_LTDLL_C' => 1,
+                        'LT_PROG_RC' => 1,
                         '_AM_MANGLE_OPTION' => 1,
+                        '_LT_PROG_ECHO_BACKSLASH' => 1,
+                        'AM_SET_DEPDIR' => 1,
                         '_LT_COMPILER_BOILERPLATE' => 1,
-                        'AC_PROG_LD_RELOAD_FLAG' => 1,
-                        'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
-                        'LTSUGAR_VERSION' => 1,
-                        'LTOBSOLETE_VERSION' => 1,
-                        '_LT_WITH_SYSROOT' => 1,
-                        'AU_DEFUN' => 1,
-                        'AC_ENABLE_STATIC' => 1,
-                        'LT_AC_PROG_GCJ' => 1,
-                        'AM_PROG_NM' => 1,
-                        'm4_pattern_forbid' => 1,
-                        'LT_AC_PROG_EGREP' => 1,
-                        'AM_INIT_AUTOMAKE' => 1,
-                        'AM_DISABLE_STATIC' => 1,
-                        'AC_ENABLE_SHARED' => 1,
-                        '_AM_AUTOCONF_VERSION' => 1,
-                        '_AM_IF_OPTION' => 1,
-                        'AC_LIBTOOL_WIN32_DLL' => 1,
-                        '_LT_LIBOBJ' => 1,
-                        '_LT_LINKER_BOILERPLATE' => 1,
-                        'LTVERSION_VERSION' => 1,
-                        'AC_LIBTOOL_RC' => 1,
-                        'AM_AUX_DIR_EXPAND' => 1,
-                        'AC_PATH_MAGIC' => 1,
-                        'AC_WITH_LTDL' => 1,
-                        'LT_PROG_RC' => 1,
-                        '_LT_AC_FILE_LTDLL_C' => 1,
-                        'AC_LTDL_DLLIB' => 1,
-                        '_LTDL_SETUP' => 1,
-                        '_LT_PROG_F77' => 1,
+                        'AM_PROG_LD' => 1,
+                        'AC_LIBLTDL_CONVENIENCE' => 1,
+                        '_AM_PROG_CC_C_O' => 1,
+                        'AM_MISSING_PROG' => 1,
+                        'AC_PROG_LIBTOOL' => 1,
+                        'LT_LIB_DLLOAD' => 1,
+                        'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
+                        'LT_SYS_MODULE_EXT' => 1,
+                        '_LT_PROG_CXX' => 1,
+                        '_LT_LINKER_OPTION' => 1,
+                        'AC_LTDL_SHLIBPATH' => 1,
+                        '_LT_AC_PROG_ECHO_BACKSLASH' => 1,
                         'AC_DISABLE_SHARED' => 1,
-                        'LT_SYS_DLOPEN_SELF' => 1,
-                        '_LT_AC_PROG_ECHO_BACKSLASH' => 1,
-                        'LT_LIB_M' => 1,
-                        'AM_MISSING_PROG' => 1,
+                        'AC_LIBTOOL_DLOPEN' => 1,
                         '_AM_PROG_TAR' => 1,
-                        'LT_CMD_MAX_LEN' => 1,
-                        'AC_LIBLTDL_CONVENIENCE' => 1,
-                        '_AM_SET_OPTION' => 1,
-                        'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
-                        'AC_LIBTOOL_PROG_CC_C_O' => 1,
-                        'LT_PATH_NM' => 1,
-                        'AC_LIBTOOL_SETUP' => 1,
-                        'AM_MAINTAINER_MODE' => 1,
-                        'AM_SILENT_RULES' => 1,
-                        '_LT_LINKER_OPTION' => 1,
+                        'AC_LIBTOOL_LINKER_OPTION' => 1,
+                        '_LT_LIBOBJ' => 1,
+                        'AM_PROG_INSTALL_STRIP' => 1,
+                        'AM_INIT_AUTOMAKE' => 1,
+                        'AC_LTDL_SHLIBEXT' => 1,
+                        'AC_LTDL_PREOPEN' => 1,
                         'AM_RUN_LOG' => 1,
-                        '_LT_AC_PROG_CXXCPP' => 1,
-                        'AC_PROG_LD_GNU' => 1,
-                        'AC_PROG_LD' => 1,
+                        'LT_PROG_GO' => 1,
+                        'AM_AUX_DIR_EXPAND' => 1,
                         '_AM_SUBST_NOTMAKE' => 1,
-                        '_AC_AM_CONFIG_HEADER_HOOK' => 1,
-                        'AC_LIBTOOL_FC' => 1,
-                        'AC_PATH_TOOL_PREFIX' => 1,
-                        'AC_LIBTOOL_OBJDIR' => 1,
-                        'LT_SYS_MODULE_PATH' => 1,
-                        'AC_LIBLTDL_INSTALLABLE' => 1,
-                        'include' => 1,
-                        'LTDL_CONVENIENCE' => 1,
-                        'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
-                        'LTDL_INIT' => 1,
-                        '_LT_REQUIRED_DARWIN_CHECKS' => 1,
-                        'AC_LIBTOOL_PICMODE' => 1,
-                        '_LT_PATH_TOOL_PREFIX' => 1,
-                        'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
-                        'AC_LTDL_OBJDIR' => 1,
-                        '_AM_CONFIG_MACRO_DIRS' => 1,
-                        'AC_PROG_EGREP' => 1,
-                        'AC_LTDL_SHLIBPATH' => 1,
-                        '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
-                        'AM_PROG_INSTALL_STRIP' => 1,
-                        'GC_SET_VERSION' => 1,
-                        'AM_SET_DEPDIR' => 1,
-                        '_LT_AC_SHELL_INIT' => 1,
+                        'LT_WITH_LTDL' => 1,
                         'AC_CONFIG_MACRO_DIR_TRACE' => 1,
-                        'AC_ENABLE_FAST_INSTALL' => 1,
-                        'LT_PROG_GCJ' => 1,
+                        'm4_pattern_forbid' => 1,
+                        'LT_FUNC_ARGZ' => 1,
+                        'AC_LIBTOOL_LANG_C_CONFIG' => 1,
+                        '_LT_AC_LANG_GCJ_CONFIG' => 1,
+                        'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
+                        'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
+                        'AM_PROG_AS' => 1,
                         'AM_ENABLE_SHARED' => 1,
-                        '_LT_AC_TAGCONFIG' => 1,
-                        '_LT_AC_LANG_C_CONFIG' => 1,
-                        'AM_ENABLE_STATIC' => 1,
-                        'LT_AC_PROG_SED' => 1,
+                        'LTOBSOLETE_VERSION' => 1,
+                        '_LT_AC_CHECK_DLFCN' => 1,
                         'AC_PROG_NM' => 1,
-                        '_AM_PROG_CC_C_O' => 1,
-                        '_LT_PREPARE_SED_QUOTE_VARS' => 1,
-                        'AC_DISABLE_STATIC' => 1,
+                        '_AM_SET_OPTION' => 1,
+                        'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
+                        'LT_SUPPORTED_TAG' => 1,
+                        '_AM_DEPENDENCIES' => 1,
+                        'AC_DISABLE_FAST_INSTALL' => 1,
                         '_m4_warn' => 1,
-                        '_LT_AC_LANG_GCJ_CONFIG' => 1,
-                        'AM_SET_LEADING_DOT' => 1,
-                        'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
-                        '_AM_DEPENDENCIES' => 1,
-                        'AM_PROG_AS' => 1,
+                        '_LT_AC_SYS_COMPILER' => 1,
+                        'LTVERSION_VERSION' => 1,
+                        'AC_LIBTOOL_CONFIG' => 1,
+                        'LT_AC_PROG_RC' => 1,
+                        'LT_SYS_DLSEARCH_PATH' => 1,
+                        '_LT_AC_PROG_CXXCPP' => 1,
+                        'AU_DEFUN' => 1,
+                        'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
+                        'AC_LIBLTDL_INSTALLABLE' => 1,
+                        'AM_ENABLE_STATIC' => 1,
+                        'LT_PROG_GCJ' => 1,
+                        '_LT_AC_SYS_LIBPATH_AIX' => 1,
                         '_LT_AC_LOCK' => 1,
-                        '_LT_AC_LANG_F77' => 1,
-                        'AM_SANITY_CHECK' => 1,
-                        'AC_LIBTOOL_GCJ' => 1,
-                        'AC_LIBTOOL_COMPILER_OPTION' => 1,
-                        '_LT_PROG_ECHO_BACKSLASH' => 1,
-                        'AC_CHECK_LIBM' => 1,
-                        'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
-                        '_LT_DLL_DEF_P' => 1,
-                        'AC_LTDL_PREOPEN' => 1,
-                        'AM_AUTOMAKE_VERSION' => 1,
-                        'LT_PATH_LD' => 1,
-                        'LT_AC_PROG_RC' => 1,
-                        'AM_MAKE_INCLUDE' => 1,
+                        'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
+                        'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
+                        'include' => 1,
+                        'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
+                        '_AM_AUTOCONF_VERSION' => 1,
+                        'AC_DISABLE_STATIC' => 1,
+                        '_AM_SET_OPTIONS' => 1,
+                        'LT_SYS_MODULE_PATH' => 1,
+                        'AM_PROG_INSTALL_SH' => 1,
+                        'LTOPTIONS_VERSION' => 1,
+                        'AC_CONFIG_MACRO_DIR' => 1,
+                        'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
+                        'LTDL_INSTALLABLE' => 1,
+                        '_AC_PROG_LIBTOOL' => 1,
+                        'AC_ENABLE_SHARED' => 1,
+                        '_LT_LINKER_BOILERPLATE' => 1,
+                        '_LT_AC_LANG_C_CONFIG' => 1,
+                        '_AM_CONFIG_MACRO_DIRS' => 1,
+                        'AC_LIBTOOL_SETUP' => 1,
                         'm4_include' => 1,
+                        '_LT_AC_TAGVAR' => 1,
+                        'AC_LIBTOOL_CXX' => 1,
+                        'LT_CONFIG_LTDL_DIR' => 1,
+                        '_AM_IF_OPTION' => 1,
+                        'AM_SILENT_RULES' => 1,
+                        '_LT_PATH_TOOL_PREFIX' => 1,
+                        'AC_DEPLIBS_CHECK_METHOD' => 1,
+                        'LTSUGAR_VERSION' => 1,
+                        'LT_SYS_SYMBOL_USCORE' => 1,
+                        'AM_PROG_NM' => 1,
+                        '_LT_REQUIRED_DARWIN_CHECKS' => 1,
+                        'AC_LTDL_ENABLE_INSTALL' => 1,
+                        'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
+                        'AC_ENABLE_STATIC' => 1,
+                        '_LT_WITH_SYSROOT' => 1,
+                        'AM_DEP_TRACK' => 1,
+                        'AC_LTDL_SYSSEARCHPATH' => 1,
+                        'LT_AC_PROG_GCJ' => 1,
+                        'LT_PATH_NM' => 1,
                         'AC_LIBTOOL_F77' => 1,
-                        '_LT_AC_TRY_DLOPEN_SELF' => 1,
-                        'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
-                        'LT_CONFIG_LTDL_DIR' => 1,
-                        'LT_SYS_DLSEARCH_PATH' => 1,
-                        '_LT_AC_LANG_CXX' => 1,
-                        'AM_PROG_LIBTOOL' => 1
+                        'AC_LTDL_SYMBOL_USCORE' => 1,
+                        '_LT_AC_LANG_GCJ' => 1,
+                        'AM_SANITY_CHECK' => 1,
+                        'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
+                        '_LT_PROG_LTMAIN' => 1,
+                        '_LT_PROG_FC' => 1,
+                        'AC_ENABLE_FAST_INSTALL' => 1,
+                        'AC_PROG_EGREP' => 1,
+                        'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
+                        '_LT_COMPILER_OPTION' => 1,
+                        'AM_DISABLE_STATIC' => 1,
+                        'AC_LTDL_OBJDIR' => 1
                       }
                     ], 'Autom4te::Request' ),
              bless( [
@@ -239,69 +239,69 @@
                         'configure.ac'
                       ],
                       {
-                        '_m4_warn' => 1,
-                        'AC_SUBST_TRACE' => 1,
-                        'AC_FC_FREEFORM' => 1,
-                        'AC_CONFIG_LINKS' => 1,
-                        '_AM_MAKEFILE_INCLUDE' => 1,
-                        'IT_PROG_INTLTOOL' => 1,
-                        'AM_PATH_GUILE' => 1,
-                        'AM_CONDITIONAL' => 1,
-                        'AC_LIBSOURCE' => 1,
+                        'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
+                        'include' => 1,
                         'AM_PROG_FC_C_O' => 1,
-                        'AM_GNU_GETTEXT' => 1,
-                        'AC_FC_PP_DEFINE' => 1,
-                        '_LT_AC_TAGCONFIG' => 1,
-                        'AC_INIT' => 1,
-                        'AC_FC_PP_SRCEXT' => 1,
-                        'AM_POT_TOOLS' => 1,
-                        '_AM_COND_ELSE' => 1,
-                        'AM_MAINTAINER_MODE' => 1,
-                        'AM_SILENT_RULES' => 1,
-                        '_AM_COND_IF' => 1,
-                        'AC_DEFINE_TRACE_LITERAL' => 1,
-                        'AM_PROG_MOC' => 1,
                         'AC_FC_SRCEXT' => 1,
-                        'AC_CANONICAL_TARGET' => 1,
-                        'AC_CANONICAL_SYSTEM' => 1,
-                        'AC_CONFIG_SUBDIRS' => 1,
-                        'LT_INIT' => 1,
-                        'AC_PROG_LIBTOOL' => 1,
-                        'GTK_DOC_CHECK' => 1,
                         'AC_REQUIRE_AUX_FILE' => 1,
-                        'AM_AUTOMAKE_VERSION' => 1,
                         'AC_CONFIG_LIBOBJ_DIR' => 1,
-                        'sinclude' => 1,
-                        'include' => 1,
-                        'AM_ENABLE_MULTILIB' => 1,
-                        'AM_PROG_CC_C_O' => 1,
-                        'AC_CANONICAL_HOST' => 1,
-                        'm4_sinclude' => 1,
-                        'm4_pattern_forbid' => 1,
-                        'LT_SUPPORTED_TAG' => 1,
-                        'AM_INIT_AUTOMAKE' => 1,
                         'AH_OUTPUT' => 1,
-                        'AM_NLS' => 1,
-                        'AM_PROG_F77_C_O' => 1,
-                        '_AM_SUBST_NOTMAKE' => 1,
                         'AC_CANONICAL_BUILD' => 1,
-                        'AC_CONFIG_FILES' => 1,
-                        'AM_PROG_MKDIR_P' => 1,
                         'AC_SUBST' => 1,
-                        'AM_PROG_AR' => 1,
-                        'AM_XGETTEXT_OPTION' => 1,
+                        'AM_PROG_CXX_C_O' => 1,
+                        'AM_INIT_AUTOMAKE' => 1,
+                        'AC_DEFINE_TRACE_LITERAL' => 1,
+                        '_AM_MAKEFILE_INCLUDE' => 1,
+                        'LT_INIT' => 1,
+                        'AC_CANONICAL_TARGET' => 1,
+                        'AC_CANONICAL_HOST' => 1,
+                        'sinclude' => 1,
+                        '_LT_AC_TAGCONFIG' => 1,
                         'AM_PROG_LIBTOOL' => 1,
-                        'AC_CONFIG_MACRO_DIR_TRACE' => 1,
-                        '_AM_COND_ENDIF' => 1,
-                        'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
+                        'AC_FC_FREEFORM' => 1,
+                        'AM_PROG_F77_C_O' => 1,
+                        'AC_CANONICAL_SYSTEM' => 1,
+                        'GTK_DOC_CHECK' => 1,
                         'AC_CONFIG_AUX_DIR' => 1,
-                        'AM_EXTRA_RECURSIVE_TARGETS' => 1,
+                        'AC_PROG_LIBTOOL' => 1,
+                        'AM_MAINTAINER_MODE' => 1,
+                        'AC_CONFIG_SUBDIRS' => 1,
+                        'AC_FC_PP_SRCEXT' => 1,
+                        'LT_SUPPORTED_TAG' => 1,
+                        'm4_sinclude' => 1,
+                        '_AM_COND_IF' => 1,
+                        'm4_pattern_allow' => 1,
+                        'AM_SILENT_RULES' => 1,
                         'AC_CONFIG_HEADERS' => 1,
+                        'LT_CONFIG_LTDL_DIR' => 1,
+                        'AM_PROG_AR' => 1,
+                        '_AM_COND_ENDIF' => 1,
+                        'AM_PATH_GUILE' => 1,
+                        '_AM_COND_ELSE' => 1,
+                        'AM_CONDITIONAL' => 1,
+                        '_m4_warn' => 1,
+                        'AC_FC_PP_DEFINE' => 1,
+                        'AM_AUTOMAKE_VERSION' => 1,
                         'AM_MAKEFILE_INCLUDE' => 1,
-                        'LT_CONFIG_LTDL_DIR' => 1,
-                        'AM_PROG_CXX_C_O' => 1,
+                        'AM_PROG_MOC' => 1,
+                        'AC_SUBST_TRACE' => 1,
+                        'AM_EXTRA_RECURSIVE_TARGETS' => 1,
+                        'AM_PROG_CC_C_O' => 1,
+                        'IT_PROG_INTLTOOL' => 1,
+                        'AM_GNU_GETTEXT' => 1,
+                        'AM_POT_TOOLS' => 1,
+                        'AM_PROG_MKDIR_P' => 1,
+                        '_AM_SUBST_NOTMAKE' => 1,
+                        'AC_CONFIG_FILES' => 1,
+                        'AC_LIBSOURCE' => 1,
+                        'AC_INIT' => 1,
+                        'AC_CONFIG_MACRO_DIR_TRACE' => 1,
+                        'm4_pattern_forbid' => 1,
+                        'AC_CONFIG_LINKS' => 1,
                         'm4_include' => 1,
-                        'm4_pattern_allow' => 1
+                        'AM_ENABLE_MULTILIB' => 1,
+                        'AM_NLS' => 1,
+                        'AM_XGETTEXT_OPTION' => 1
                       }
                     ], 'Autom4te::Request' ),
              bless( [
@@ -344,188 +344,188 @@
                         'configure.ac'
                       ],
                       {
-                        'AM_AUTOMAKE_VERSION' => 1,
-                        '_LT_DLL_DEF_P' => 1,
-                        'AC_LTDL_PREOPEN' => 1,
-                        'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
-                        'AC_CHECK_LIBM' => 1,
-                        'AC_LIBTOOL_GCJ' => 1,
-                        '_LT_PROG_ECHO_BACKSLASH' => 1,
-                        'AC_LIBTOOL_COMPILER_OPTION' => 1,
-                        'AM_PROG_LIBTOOL' => 1,
+                        'LT_SYS_MODULE_PATH' => 1,
+                        'LTOPTIONS_VERSION' => 1,
+                        'AC_CONFIG_MACRO_DIR' => 1,
+                        'AM_PROG_INSTALL_SH' => 1,
+                        'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
+                        'LTDL_INSTALLABLE' => 1,
+                        'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
+                        'include' => 1,
                         'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
-                        'LT_CONFIG_LTDL_DIR' => 1,
-                        'LT_SYS_DLSEARCH_PATH' => 1,
-                        '_LT_AC_LANG_CXX' => 1,
-                        'AM_MAKE_INCLUDE' => 1,
-                        'LT_AC_PROG_RC' => 1,
-                        'LT_PATH_LD' => 1,
-                        'm4_include' => 1,
-                        'AC_LIBTOOL_F77' => 1,
-                        '_LT_AC_TRY_DLOPEN_SELF' => 1,
+                        'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
                         'AC_DISABLE_STATIC' => 1,
-                        '_LT_PREPARE_SED_QUOTE_VARS' => 1,
-                        '_LT_AC_LANG_GCJ_CONFIG' => 1,
-                        '_m4_warn' => 1,
+                        '_AM_AUTOCONF_VERSION' => 1,
+                        '_AM_SET_OPTIONS' => 1,
                         'AM_ENABLE_STATIC' => 1,
-                        'LT_AC_PROG_SED' => 1,
-                        'AC_PROG_NM' => 1,
-                        '_AM_PROG_CC_C_O' => 1,
-                        '_LT_AC_TAGCONFIG' => 1,
-                        '_LT_AC_LANG_C_CONFIG' => 1,
+                        'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
+                        'AC_LIBLTDL_INSTALLABLE' => 1,
                         'LT_PROG_GCJ' => 1,
-                        'AC_ENABLE_FAST_INSTALL' => 1,
-                        'AM_ENABLE_SHARED' => 1,
-                        '_LT_AC_LANG_F77' => 1,
-                        'AM_SANITY_CHECK' => 1,
                         '_LT_AC_LOCK' => 1,
+                        '_LT_AC_SYS_LIBPATH_AIX' => 1,
+                        'LT_SYS_DLSEARCH_PATH' => 1,
+                        '_LT_AC_PROG_CXXCPP' => 1,
+                        'AU_DEFUN' => 1,
+                        '_AM_DEPENDENCIES' => 1,
+                        'AC_DISABLE_FAST_INSTALL' => 1,
+                        '_m4_warn' => 1,
+                        '_LT_AC_SYS_COMPILER' => 1,
+                        'LT_AC_PROG_RC' => 1,
+                        'AC_LIBTOOL_CONFIG' => 1,
+                        'LTVERSION_VERSION' => 1,
+                        '_AM_SET_OPTION' => 1,
+                        'AC_PROG_NM' => 1,
+                        'LT_SUPPORTED_TAG' => 1,
+                        'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
+                        'AC_LIBTOOL_LANG_C_CONFIG' => 1,
+                        'm4_pattern_forbid' => 1,
+                        'LT_FUNC_ARGZ' => 1,
+                        'AC_CONFIG_MACRO_DIR_TRACE' => 1,
+                        'LT_WITH_LTDL' => 1,
+                        'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
+                        'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
+                        '_LT_AC_LANG_GCJ_CONFIG' => 1,
+                        'LTOBSOLETE_VERSION' => 1,
                         'AM_PROG_AS' => 1,
-                        '_AM_DEPENDENCIES' => 1,
-                        'AM_SET_LEADING_DOT' => 1,
-                        'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
-                        'LTDL_INIT' => 1,
-                        '_LT_REQUIRED_DARWIN_CHECKS' => 1,
-                        'AC_LIBTOOL_PICMODE' => 1,
-                        'include' => 1,
-                        'AC_LIBLTDL_INSTALLABLE' => 1,
-                        'LTDL_CONVENIENCE' => 1,
-                        'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
-                        'AC_PATH_TOOL_PREFIX' => 1,
-                        'AC_LIBTOOL_FC' => 1,
-                        'LT_SYS_MODULE_PATH' => 1,
-                        'AC_LIBTOOL_OBJDIR' => 1,
-                        '_LT_AC_PROG_CXXCPP' => 1,
+                        'AM_ENABLE_SHARED' => 1,
+                        '_LT_AC_CHECK_DLFCN' => 1,
                         'AM_RUN_LOG' => 1,
-                        '_LT_LINKER_OPTION' => 1,
-                        'AC_PROG_LD' => 1,
-                        'AC_PROG_LD_GNU' => 1,
-                        '_AC_AM_CONFIG_HEADER_HOOK' => 1,
+                        'AC_LTDL_PREOPEN' => 1,
+                        'LT_PROG_GO' => 1,
+                        'AM_AUX_DIR_EXPAND' => 1,
                         '_AM_SUBST_NOTMAKE' => 1,
-                        'GC_SET_VERSION' => 1,
-                        'AC_CONFIG_MACRO_DIR_TRACE' => 1,
-                        'AM_SET_DEPDIR' => 1,
-                        '_LT_AC_SHELL_INIT' => 1,
-                        '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
-                        'AM_PROG_INSTALL_STRIP' => 1,
-                        'AC_LTDL_SHLIBPATH' => 1,
-                        'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
-                        '_LT_PATH_TOOL_PREFIX' => 1,
+                        'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
+                        'AC_ENABLE_FAST_INSTALL' => 1,
+                        'AC_PROG_EGREP' => 1,
+                        '_LT_COMPILER_OPTION' => 1,
                         'AC_LTDL_OBJDIR' => 1,
-                        'AC_PROG_EGREP' => 1,
-                        '_AM_CONFIG_MACRO_DIRS' => 1,
-                        '_AM_PROG_TAR' => 1,
-                        'LT_LIB_M' => 1,
-                        'AM_MISSING_PROG' => 1,
-                        'AC_DISABLE_SHARED' => 1,
-                        '_LT_AC_PROG_ECHO_BACKSLASH' => 1,
-                        'LT_SYS_DLOPEN_SELF' => 1,
-                        'AM_MAINTAINER_MODE' => 1,
-                        'AC_LIBTOOL_SETUP' => 1,
-                        'AM_SILENT_RULES' => 1,
-                        'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
+                        'AM_DISABLE_STATIC' => 1,
+                        '_LT_PROG_LTMAIN' => 1,
+                        'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
+                        '_LT_PROG_FC' => 1,
+                        'AC_LTDL_SYMBOL_USCORE' => 1,
+                        'AC_LIBTOOL_F77' => 1,
+                        '_LT_AC_LANG_GCJ' => 1,
                         'LT_PATH_NM' => 1,
-                        'AC_LIBTOOL_PROG_CC_C_O' => 1,
-                        'LT_CMD_MAX_LEN' => 1,
-                        'AC_LIBLTDL_CONVENIENCE' => 1,
-                        '_AM_SET_OPTION' => 1,
-                        '_AM_IF_OPTION' => 1,
-                        'AC_LIBTOOL_WIN32_DLL' => 1,
-                        '_LT_LIBOBJ' => 1,
-                        '_AM_AUTOCONF_VERSION' => 1,
-                        'AC_ENABLE_SHARED' => 1,
-                        'LT_AC_PROG_EGREP' => 1,
-                        'm4_pattern_forbid' => 1,
-                        'AM_DISABLE_STATIC' => 1,
-                        'AM_INIT_AUTOMAKE' => 1,
-                        'LTOBSOLETE_VERSION' => 1,
+                        'AM_SANITY_CHECK' => 1,
+                        'AM_DEP_TRACK' => 1,
                         '_LT_WITH_SYSROOT' => 1,
                         'AC_ENABLE_STATIC' => 1,
-                        'AU_DEFUN' => 1,
+                        'AC_LTDL_SYSSEARCHPATH' => 1,
                         'LT_AC_PROG_GCJ' => 1,
+                        'LT_SYS_SYMBOL_USCORE' => 1,
                         'AM_PROG_NM' => 1,
-                        '_LTDL_SETUP' => 1,
-                        'AC_LTDL_DLLIB' => 1,
-                        '_LT_PROG_F77' => 1,
+                        '_LT_REQUIRED_DARWIN_CHECKS' => 1,
+                        'AC_LTDL_ENABLE_INSTALL' => 1,
+                        'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
+                        'LT_CONFIG_LTDL_DIR' => 1,
+                        '_AM_IF_OPTION' => 1,
+                        'AC_LIBTOOL_CXX' => 1,
+                        'AM_SILENT_RULES' => 1,
+                        'AC_DEPLIBS_CHECK_METHOD' => 1,
+                        '_LT_PATH_TOOL_PREFIX' => 1,
+                        'LTSUGAR_VERSION' => 1,
+                        '_LT_AC_LANG_C_CONFIG' => 1,
+                        '_LT_LINKER_BOILERPLATE' => 1,
+                        '_AM_CONFIG_MACRO_DIRS' => 1,
+                        'AC_LIBTOOL_SETUP' => 1,
+                        '_LT_AC_TAGVAR' => 1,
+                        'm4_include' => 1,
+                        '_AC_PROG_LIBTOOL' => 1,
+                        'AC_ENABLE_SHARED' => 1,
+                        'AC_PATH_TOOL_PREFIX' => 1,
+                        '_LT_AC_LANG_RC_CONFIG' => 1,
+                        'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
+                        'AM_MISSING_HAS_RUN' => 1,
+                        '_LT_AC_SHELL_INIT' => 1,
+                        'AM_MAKE_INCLUDE' => 1,
+                        'AC_LTDL_DLSYM_USCORE' => 1,
+                        'AC_LIBTOOL_GCJ' => 1,
+                        'AC_CHECK_LIBM' => 1,
+                        'AM_DISABLE_SHARED' => 1,
                         'AC_PATH_MAGIC' => 1,
+                        'LT_AC_PROG_EGREP' => 1,
+                        'LT_AC_PROG_SED' => 1,
+                        'AM_MAINTAINER_MODE' => 1,
+                        'AC_LIBTOOL_DLOPEN_SELF' => 1,
+                        'AC_PROG_LD_RELOAD_FLAG' => 1,
+                        '_LT_CC_BASENAME' => 1,
+                        'LT_INIT' => 1,
+                        'LT_LIB_M' => 1,
                         'AC_WITH_LTDL' => 1,
-                        'LT_PROG_RC' => 1,
-                        '_LT_AC_FILE_LTDLL_C' => 1,
-                        '_LT_LINKER_BOILERPLATE' => 1,
-                        'AC_LIBTOOL_RC' => 1,
-                        'LTVERSION_VERSION' => 1,
-                        'AM_AUX_DIR_EXPAND' => 1,
+                        'AC_LIBTOOL_OBJDIR' => 1,
+                        'AM_PROG_LIBTOOL' => 1,
+                        '_LT_AC_TAGCONFIG' => 1,
+                        'AC_PROG_LD' => 1,
+                        'LT_OUTPUT' => 1,
+                        'AM_CONDITIONAL' => 1,
+                        '_LT_PREPARE_SED_QUOTE_VARS' => 1,
+                        '_LT_AC_TRY_DLOPEN_SELF' => 1,
+                        'GC_SET_VERSION' => 1,
+                        'LT_LANG' => 1,
+                        'LTDL_INIT' => 1,
+                        'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+                        'AC_LIBTOOL_FC' => 1,
+                        '_LT_AC_LANG_CXX' => 1,
+                        'AC_LIB_LTDL' => 1,
+                        'LT_CMD_MAX_LEN' => 1,
+                        'AC_LIBTOOL_PICMODE' => 1,
+                        '_LT_AC_LANG_F77' => 1,
                         'AC_DEFUN_ONCE' => 1,
-                        'AC_LIB_LTDL' => 1,
+                        'AM_SUBST_NOTMAKE' => 1,
+                        '_AM_PROG_TAR' => 1,
+                        '_LT_AC_PROG_ECHO_BACKSLASH' => 1,
+                        'AC_DISABLE_SHARED' => 1,
+                        'AC_LIBTOOL_DLOPEN' => 1,
+                        'AC_LIBTOOL_LINKER_OPTION' => 1,
+                        'AM_PROG_INSTALL_STRIP' => 1,
+                        'AM_INIT_AUTOMAKE' => 1,
+                        'AC_LTDL_SHLIBEXT' => 1,
+                        '_LT_LIBOBJ' => 1,
+                        'LT_SYS_MODULE_EXT' => 1,
+                        'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
                         'LT_LIB_DLLOAD' => 1,
-                        'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
-                        'AM_CONDITIONAL' => 1,
-                        'LT_FUNC_DLSYM_USCORE' => 1,
-                        'LTOPTIONS_VERSION' => 1,
-                        'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
-                        'AC_DISABLE_FAST_INSTALL' => 1,
+                        '_LT_PROG_CXX' => 1,
+                        '_LT_LINKER_OPTION' => 1,
+                        'AC_LTDL_SHLIBPATH' => 1,
                         '_AM_MANGLE_OPTION' => 1,
+                        '_LT_PROG_ECHO_BACKSLASH' => 1,
+                        'LT_PROG_RC' => 1,
+                        'AM_SET_DEPDIR' => 1,
                         '_LT_COMPILER_BOILERPLATE' => 1,
-                        'LTSUGAR_VERSION' => 1,
-                        'AC_PROG_LD_RELOAD_FLAG' => 1,
-                        'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
-                        'AC_LIBTOOL_LINKER_OPTION' => 1,
-                        'AC_LTDL_SYMBOL_USCORE' => 1,
-                        '_LT_AC_TAGVAR' => 1,
-                        'AC_CONFIG_MACRO_DIR' => 1,
+                        '_AM_PROG_CC_C_O' => 1,
+                        'AM_PROG_LD' => 1,
+                        'AC_LIBLTDL_CONVENIENCE' => 1,
                         'AC_PROG_LIBTOOL' => 1,
-                        '_LT_AC_SYS_COMPILER' => 1,
-                        'AM_SUBST_NOTMAKE' => 1,
-                        'AM_DEP_TRACK' => 1,
-                        'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
-                        '_LT_PROG_LTMAIN' => 1,
-                        'AM_PROG_CC_C_O' => 1,
-                        '_AC_PROG_LIBTOOL' => 1,
-                        'AM_DISABLE_SHARED' => 1,
-                        'LT_SYS_DLOPEN_DEPLIBS' => 1,
-                        'LT_FUNC_ARGZ' => 1,
-                        'LT_SUPPORTED_TAG' => 1,
-                        '_LT_CC_BASENAME' => 1,
-                        'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
-                        'AC_LTDL_ENABLE_INSTALL' => 1,
-                        'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
-                        'LT_WITH_LTDL' => 1,
-                        'LTDL_INSTALLABLE' => 1,
-                        'AC_DEFUN' => 1,
+                        'AM_MISSING_PROG' => 1,
                         '_LT_AC_LANG_CXX_CONFIG' => 1,
+                        'LTDL_CONVENIENCE' => 1,
+                        '_AC_AM_CONFIG_HEADER_HOOK' => 1,
+                        '_LT_AC_LANG_F77_CONFIG' => 1,
+                        'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
+                        '_LT_PROG_F77' => 1,
+                        'AC_LIBTOOL_COMPILER_OPTION' => 1,
+                        'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
+                        '_LT_AC_FILE_LTDLL_C' => 1,
                         'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
-                        'LT_OUTPUT' => 1,
-                        'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
-                        'AC_LTDL_DLSYM_USCORE' => 1,
-                        '_AM_SET_OPTIONS' => 1,
+                        'AM_SET_LEADING_DOT' => 1,
+                        '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+                        'LT_SYS_DLOPEN_SELF' => 1,
+                        'LT_PATH_LD' => 1,
+                        'LT_FUNC_DLSYM_USCORE' => 1,
+                        'AM_AUTOMAKE_VERSION' => 1,
+                        'AC_LTDL_DLLIB' => 1,
+                        'AC_PROG_LD_GNU' => 1,
+                        'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
                         'm4_pattern_allow' => 1,
-                        '_LT_COMPILER_OPTION' => 1,
-                        'AM_PROG_LD' => 1,
-                        '_LT_AC_SYS_LIBPATH_AIX' => 1,
-                        'AC_LIBTOOL_CONFIG' => 1,
-                        '_LT_AC_LANG_RC_CONFIG' => 1,
-                        'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
-                        'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
-                        'AC_LIBTOOL_DLOPEN_SELF' => 1,
-                        '_LT_AC_LANG_GCJ' => 1,
-                        'LT_PROG_GO' => 1,
-                        'LT_LANG' => 1,
-                        '_LT_AC_CHECK_DLFCN' => 1,
-                        'AC_LIBTOOL_LANG_C_CONFIG' => 1,
-                        'LT_SYS_SYMBOL_USCORE' => 1,
-                        '_LT_PROG_FC' => 1,
-                        'AC_LIBTOOL_CXX' => 1,
-                        'AC_LTDL_SYSSEARCHPATH' => 1,
-                        'AC_DEPLIBS_CHECK_METHOD' => 1,
-                        'AM_MISSING_HAS_RUN' => 1,
-                        'AC_LIBTOOL_DLOPEN' => 1,
-                        'LT_SYS_MODULE_EXT' => 1,
-                        'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
-                        '_LT_AC_LANG_F77_CONFIG' => 1,
-                        'AC_LTDL_SHLIBEXT' => 1,
-                        'LT_INIT' => 1,
-                        'AM_PROG_INSTALL_SH' => 1,
-                        '_LT_PROG_CXX' => 1,
-                        'AC_LIBTOOL_PROG_LD_SHLIBS' => 1
+                        'LT_SYS_DLOPEN_DEPLIBS' => 1,
+                        'AC_DEFUN' => 1,
+                        'AC_LIBTOOL_PROG_CC_C_O' => 1,
+                        'AC_LIBTOOL_RC' => 1,
+                        '_LT_DLL_DEF_P' => 1,
+                        'AC_LIBTOOL_WIN32_DLL' => 1,
+                        '_LTDL_SETUP' => 1,
+                        'AM_PROG_CC_C_O' => 1
                       }
                     ], 'Autom4te::Request' ),
              bless( [
@@ -541,69 +541,69 @@
                         'configure.ac'
                       ],
                       {
-                        'LT_INIT' => 1,
-                        'AC_PROG_LIBTOOL' => 1,
-                        'AC_CONFIG_SUBDIRS' => 1,
-                        'GTK_DOC_CHECK' => 1,
-                        'AC_REQUIRE_AUX_FILE' => 1,
-                        'AM_MAINTAINER_MODE' => 1,
-                        '_AM_COND_ELSE' => 1,
-                        'AM_SILENT_RULES' => 1,
-                        '_AM_COND_IF' => 1,
-                        'AC_FC_SRCEXT' => 1,
-                        'AC_CANONICAL_TARGET' => 1,
-                        'AM_PROG_MOC' => 1,
-                        'AC_DEFINE_TRACE_LITERAL' => 1,
-                        'AC_CANONICAL_SYSTEM' => 1,
+                        'AM_POT_TOOLS' => 1,
                         'AM_GNU_GETTEXT' => 1,
-                        'AC_FC_PP_DEFINE' => 1,
-                        '_LT_AC_TAGCONFIG' => 1,
-                        'AC_INIT' => 1,
-                        'AC_FC_PP_SRCEXT' => 1,
-                        'AM_POT_TOOLS' => 1,
-                        'AC_FC_FREEFORM' => 1,
-                        '_m4_warn' => 1,
+                        'AM_PROG_MKDIR_P' => 1,
+                        '_AM_SUBST_NOTMAKE' => 1,
+                        'AC_CONFIG_FILES' => 1,
                         'AC_SUBST_TRACE' => 1,
-                        '_AM_MAKEFILE_INCLUDE' => 1,
+                        'AM_EXTRA_RECURSIVE_TARGETS' => 1,
                         'IT_PROG_INTLTOOL' => 1,
+                        'AM_PROG_CC_C_O' => 1,
+                        'm4_include' => 1,
                         'AC_CONFIG_LINKS' => 1,
+                        'AM_NLS' => 1,
+                        'AM_ENABLE_MULTILIB' => 1,
+                        'AM_XGETTEXT_OPTION' => 1,
+                        'AC_LIBSOURCE' => 1,
+                        'AC_INIT' => 1,
+                        'm4_pattern_forbid' => 1,
+                        'AC_CONFIG_MACRO_DIR_TRACE' => 1,
+                        '_AM_COND_ENDIF' => 1,
                         'AM_PATH_GUILE' => 1,
-                        'AM_CONDITIONAL' => 1,
-                        'AC_LIBSOURCE' => 1,
-                        'AM_PROG_FC_C_O' => 1,
+                        'LT_SUPPORTED_TAG' => 1,
+                        'm4_sinclude' => 1,
+                        'AM_SILENT_RULES' => 1,
+                        '_AM_COND_IF' => 1,
+                        'm4_pattern_allow' => 1,
                         'AC_CONFIG_HEADERS' => 1,
-                        'AM_MAKEFILE_INCLUDE' => 1,
                         'LT_CONFIG_LTDL_DIR' => 1,
-                        'm4_pattern_allow' => 1,
-                        'AM_PROG_CXX_C_O' => 1,
-                        'm4_include' => 1,
                         'AM_PROG_AR' => 1,
+                        'AM_MAKEFILE_INCLUDE' => 1,
+                        'AM_AUTOMAKE_VERSION' => 1,
+                        'AM_PROG_MOC' => 1,
+                        '_AM_COND_ELSE' => 1,
+                        'AM_CONDITIONAL' => 1,
+                        '_m4_warn' => 1,
+                        'AC_FC_PP_DEFINE' => 1,
+                        'sinclude' => 1,
+                        '_LT_AC_TAGCONFIG' => 1,
                         'AM_PROG_LIBTOOL' => 1,
-                        'AM_XGETTEXT_OPTION' => 1,
-                        'AC_CONFIG_MACRO_DIR_TRACE' => 1,
-                        '_AM_COND_ENDIF' => 1,
+                        'AC_CANONICAL_TARGET' => 1,
+                        '_AM_MAKEFILE_INCLUDE' => 1,
+                        'LT_INIT' => 1,
+                        'AC_CANONICAL_HOST' => 1,
+                        'AM_MAINTAINER_MODE' => 1,
+                        'AC_PROG_LIBTOOL' => 1,
+                        'AC_CONFIG_SUBDIRS' => 1,
+                        'AC_FC_PP_SRCEXT' => 1,
+                        'AC_FC_FREEFORM' => 1,
+                        'AC_CANONICAL_SYSTEM' => 1,
+                        'AM_PROG_F77_C_O' => 1,
+                        'GTK_DOC_CHECK' => 1,
                         'AC_CONFIG_AUX_DIR' => 1,
+                        'AC_CONFIG_LIBOBJ_DIR' => 1,
                         'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
-                        'AM_EXTRA_RECURSIVE_TARGETS' => 1,
-                        'LT_SUPPORTED_TAG' => 1,
-                        'm4_pattern_forbid' => 1,
-                        'AM_NLS' => 1,
-                        'AH_OUTPUT' => 1,
+                        'include' => 1,
+                        'AM_PROG_FC_C_O' => 1,
+                        'AC_FC_SRCEXT' => 1,
+                        'AC_REQUIRE_AUX_FILE' => 1,
                         'AM_INIT_AUTOMAKE' => 1,
-                        'AM_PROG_F77_C_O' => 1,
+                        'AC_DEFINE_TRACE_LITERAL' => 1,
                         'AC_CANONICAL_BUILD' => 1,
-                        'AC_CONFIG_FILES' => 1,
-                        '_AM_SUBST_NOTMAKE' => 1,
-                        'AM_PROG_MKDIR_P' => 1,
+                        'AH_OUTPUT' => 1,
                         'AC_SUBST' => 1,
-                        'AM_AUTOMAKE_VERSION' => 1,
-                        'AC_CONFIG_LIBOBJ_DIR' => 1,
-                        'AM_ENABLE_MULTILIB' => 1,
-                        'sinclude' => 1,
-                        'include' => 1,
-                        'AC_CANONICAL_HOST' => 1,
-                        'm4_sinclude' => 1,
-                        'AM_PROG_CC_C_O' => 1
+                        'AM_PROG_CXX_C_O' => 1
                       }
                     ], 'Autom4te::Request' )
            );

Modified: trunk/Build/source/utils/asymptote/install-sh
===================================================================
--- trunk/Build/source/utils/asymptote/install-sh	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/install-sh	2025-02-11 21:53:03 UTC (rev 73901)
@@ -1,7 +1,7 @@
-#!/bin/sh
+#!/usr/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2009-04-28.21; # UTC
+scriptversion=2020-11-14.01; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -35,25 +35,21 @@
 # FSF changes to this file are in the public domain.
 #
 # Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
+# 'make' implicit rules from creating a file called install from it
 # when there is no Makefile.
 #
 # This script is compatible with the BSD install script, but was written
 # from scratch.
 
+tab='	'
 nl='
 '
-IFS=" ""	$nl"
+IFS=" $tab$nl"
 
-# set DOITPROG to echo to test this script
+# Set DOITPROG to "echo" to test this script.
 
-# Don't use :- since 4.3BSD and earlier shells don't like it.
 doit=${DOITPROG-}
-if test -z "$doit"; then
-  doit_exec=exec
-else
-  doit_exec=$doit
-fi
+doit_exec=${doit:-exec}
 
 # Put in absolute file names if you don't have them in your path;
 # or use environment vars.
@@ -68,22 +64,16 @@
 rmprog=${RMPROG-rm}
 stripprog=${STRIPPROG-strip}
 
-posix_glob='?'
-initialize_posix_glob='
-  test "$posix_glob" != "?" || {
-    if (set -f) 2>/dev/null; then
-      posix_glob=
-    else
-      posix_glob=:
-    fi
-  }
-'
-
 posix_mkdir=
 
 # Desired mode of installed file.
 mode=0755
 
+# Create dirs (including intermediate dirs) using mode 755.
+# This is like GNU 'install' as of coreutils 8.32 (2020).
+mkdir_umask=22
+
+backupsuffix=
 chgrpcmd=
 chmodcmd=$chmodprog
 chowncmd=
@@ -97,7 +87,7 @@
 dst_arg=
 
 copy_on_change=false
-no_target_directory=
+is_target_a_directory=possibly
 
 usage="\
 Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
@@ -114,12 +104,14 @@
      --version  display version info and exit.
 
   -c            (ignored)
-  -C            install only if different (preserve the last data modification time)
+  -C            install only if different (preserve data modification time)
   -d            create directories instead of installing files.
   -g GROUP      $chgrpprog installed files to GROUP.
   -m MODE       $chmodprog installed files to MODE.
   -o USER       $chownprog installed files to USER.
+  -p            pass -p to $cpprog.
   -s            $stripprog installed files.
+  -S SUFFIX     attempt to back up existing files, with suffix SUFFIX.
   -t DIRECTORY  install into DIRECTORY.
   -T            report an error if DSTFILE is a directory.
 
@@ -126,6 +118,14 @@
 Environment variables override the default commands:
   CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
   RMPROG STRIPPROG
+
+By default, rm is invoked with -f; when overridden with RMPROG,
+it's up to you to specify -f if you want it.
+
+If -S is not specified, no backups are attempted.
+
+Email bug reports to bug-automake at gnu.org.
+Automake home page: https://www.gnu.org/software/automake/
 "
 
 while test $# -ne 0; do
@@ -137,36 +137,46 @@
     -d) dir_arg=true;;
 
     -g) chgrpcmd="$chgrpprog $2"
-	shift;;
+        shift;;
 
     --help) echo "$usage"; exit $?;;
 
     -m) mode=$2
-	case $mode in
-	  *' '* | *'	'* | *'
-'*	  | *'*'* | *'?'* | *'['*)
-	    echo "$0: invalid mode: $mode" >&2
-	    exit 1;;
-	esac
-	shift;;
+        case $mode in
+          *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
+            echo "$0: invalid mode: $mode" >&2
+            exit 1;;
+        esac
+        shift;;
 
     -o) chowncmd="$chownprog $2"
-	shift;;
+        shift;;
 
+    -p) cpprog="$cpprog -p";;
+
     -s) stripcmd=$stripprog;;
 
-    -t) dst_arg=$2
-	shift;;
+    -S) backupsuffix="$2"
+        shift;;
 
-    -T) no_target_directory=true;;
+    -t)
+        is_target_a_directory=always
+        dst_arg=$2
+        # Protect names problematic for 'test' and other utilities.
+        case $dst_arg in
+          -* | [=\(\)!]) dst_arg=./$dst_arg;;
+        esac
+        shift;;
 
+    -T) is_target_a_directory=never;;
+
     --version) echo "$0 $scriptversion"; exit $?;;
 
-    --)	shift
-	break;;
+    --) shift
+        break;;
 
-    -*)	echo "$0: invalid option: $1" >&2
-	exit 1;;
+    -*) echo "$0: invalid option: $1" >&2
+        exit 1;;
 
     *)  break;;
   esac
@@ -173,6 +183,16 @@
   shift
 done
 
+# We allow the use of options -d and -T together, by making -d
+# take the precedence; this is for compatibility with GNU install.
+
+if test -n "$dir_arg"; then
+  if test -n "$dst_arg"; then
+    echo "$0: target directory not allowed when installing a directory." >&2
+    exit 1
+  fi
+fi
+
 if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
   # When -d is used, all remaining arguments are directories to create.
   # When -t is used, the destination is already specified.
@@ -186,6 +206,10 @@
     fi
     shift # arg
     dst_arg=$arg
+    # Protect names problematic for 'test' and other utilities.
+    case $dst_arg in
+      -* | [=\(\)!]) dst_arg=./$dst_arg;;
+    esac
   done
 fi
 
@@ -194,14 +218,27 @@
     echo "$0: no input file specified." >&2
     exit 1
   fi
-  # It's OK to call `install-sh -d' without argument.
+  # It's OK to call 'install-sh -d' without argument.
   # This can happen when creating conditional directories.
   exit 0
 fi
 
 if test -z "$dir_arg"; then
-  trap '(exit $?); exit' 1 2 13 15
+  if test $# -gt 1 || test "$is_target_a_directory" = always; then
+    if test ! -d "$dst_arg"; then
+      echo "$0: $dst_arg: Is not a directory." >&2
+      exit 1
+    fi
+  fi
+fi
 
+if test -z "$dir_arg"; then
+  do_exit='(exit $ret); exit $ret'
+  trap "ret=129; $do_exit" 1
+  trap "ret=130; $do_exit" 2
+  trap "ret=141; $do_exit" 13
+  trap "ret=143; $do_exit" 15
+
   # Set umask so as not to create temps with too-generous modes.
   # However, 'strip' requires both read and write access to temps.
   case $mode in
@@ -211,16 +248,16 @@
 
     *[0-7])
       if test -z "$stripcmd"; then
-	u_plus_rw=
+        u_plus_rw=
       else
-	u_plus_rw='% 200'
+        u_plus_rw='% 200'
       fi
       cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
     *)
       if test -z "$stripcmd"; then
-	u_plus_rw=
+        u_plus_rw=
       else
-	u_plus_rw=,u+rw
+        u_plus_rw=,u+rw
       fi
       cp_umask=$mode$u_plus_rw;;
   esac
@@ -228,9 +265,9 @@
 
 for src
 do
-  # Protect names starting with `-'.
+  # Protect names problematic for 'test' and other utilities.
   case $src in
-    -*) src=./$src;;
+    -* | [=\(\)!]) src=./$src;;
   esac
 
   if test -n "$dir_arg"; then
@@ -238,6 +275,10 @@
     dstdir=$dst
     test -d "$dstdir"
     dstdir_status=$?
+    # Don't chown directories that already exist.
+    if test $dstdir_status = 0; then
+      chowncmd=""
+    fi
   else
 
     # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
@@ -252,151 +293,116 @@
       echo "$0: no destination specified." >&2
       exit 1
     fi
-
     dst=$dst_arg
-    # Protect names starting with `-'.
-    case $dst in
-      -*) dst=./$dst;;
-    esac
 
-    # If destination is a directory, append the input filename; won't work
-    # if double slashes aren't ignored.
+    # If destination is a directory, append the input filename.
     if test -d "$dst"; then
-      if test -n "$no_target_directory"; then
-	echo "$0: $dst_arg: Is a directory" >&2
-	exit 1
+      if test "$is_target_a_directory" = never; then
+        echo "$0: $dst_arg: Is a directory" >&2
+        exit 1
       fi
       dstdir=$dst
-      dst=$dstdir/`basename "$src"`
+      dstbase=`basename "$src"`
+      case $dst in
+	*/) dst=$dst$dstbase;;
+	*)  dst=$dst/$dstbase;;
+      esac
       dstdir_status=0
     else
-      # Prefer dirname, but fall back on a substitute if dirname fails.
-      dstdir=`
-	(dirname "$dst") 2>/dev/null ||
-	expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	     X"$dst" : 'X\(//\)[^/]' \| \
-	     X"$dst" : 'X\(//\)$' \| \
-	     X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
-	echo X"$dst" |
-	    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-		   s//\1/
-		   q
-		 }
-		 /^X\(\/\/\)[^/].*/{
-		   s//\1/
-		   q
-		 }
-		 /^X\(\/\/\)$/{
-		   s//\1/
-		   q
-		 }
-		 /^X\(\/\).*/{
-		   s//\1/
-		   q
-		 }
-		 s/.*/./; q'
-      `
-
+      dstdir=`dirname "$dst"`
       test -d "$dstdir"
       dstdir_status=$?
     fi
   fi
 
+  case $dstdir in
+    */) dstdirslash=$dstdir;;
+    *)  dstdirslash=$dstdir/;;
+  esac
+
   obsolete_mkdir_used=false
 
   if test $dstdir_status != 0; then
     case $posix_mkdir in
       '')
-	# Create intermediate dirs using mode 755 as modified by the umask.
-	# This is like FreeBSD 'install' as of 1997-10-28.
-	umask=`umask`
-	case $stripcmd.$umask in
-	  # Optimize common cases.
-	  *[2367][2367]) mkdir_umask=$umask;;
-	  .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+        # With -d, create the new directory with the user-specified mode.
+        # Otherwise, rely on $mkdir_umask.
+        if test -n "$dir_arg"; then
+          mkdir_mode=-m$mode
+        else
+          mkdir_mode=
+        fi
 
-	  *[0-7])
-	    mkdir_umask=`expr $umask + 22 \
-	      - $umask % 100 % 40 + $umask % 20 \
-	      - $umask % 10 % 4 + $umask % 2
-	    `;;
-	  *) mkdir_umask=$umask,go-w;;
-	esac
+        posix_mkdir=false
+	# The $RANDOM variable is not portable (e.g., dash).  Use it
+	# here however when possible just to lower collision chance.
+	tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
 
-	# With -d, create the new directory with the user-specified mode.
-	# Otherwise, rely on $mkdir_umask.
-	if test -n "$dir_arg"; then
-	  mkdir_mode=-m$mode
+	trap '
+	  ret=$?
+	  rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null
+	  exit $ret
+	' 0
+
+	# Because "mkdir -p" follows existing symlinks and we likely work
+	# directly in world-writeable /tmp, make sure that the '$tmpdir'
+	# directory is successfully created first before we actually test
+	# 'mkdir -p'.
+	if (umask $mkdir_umask &&
+	    $mkdirprog $mkdir_mode "$tmpdir" &&
+	    exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
+	then
+	  if test -z "$dir_arg" || {
+	       # Check for POSIX incompatibilities with -m.
+	       # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+	       # other-writable bit of parent directory when it shouldn't.
+	       # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+	       test_tmpdir="$tmpdir/a"
+	       ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
+	       case $ls_ld_tmpdir in
+		 d????-?r-*) different_mode=700;;
+		 d????-?--*) different_mode=755;;
+		 *) false;;
+	       esac &&
+	       $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
+		 ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
+		 test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+	       }
+	     }
+	  then posix_mkdir=:
+	  fi
+	  rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
 	else
-	  mkdir_mode=
+	  # Remove any dirs left behind by ancient mkdir implementations.
+	  rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
 	fi
-
-	posix_mkdir=false
-	case $umask in
-	  *[123567][0-7][0-7])
-	    # POSIX mkdir -p sets u+wx bits regardless of umask, which
-	    # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
-	    ;;
-	  *)
-	    tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
-	    trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
-
-	    if (umask $mkdir_umask &&
-		exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
-	    then
-	      if test -z "$dir_arg" || {
-		   # Check for POSIX incompatibilities with -m.
-		   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
-		   # other-writeable bit of parent directory when it shouldn't.
-		   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
-		   ls_ld_tmpdir=`ls -ld "$tmpdir"`
-		   case $ls_ld_tmpdir in
-		     d????-?r-*) different_mode=700;;
-		     d????-?--*) different_mode=755;;
-		     *) false;;
-		   esac &&
-		   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
-		     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
-		     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
-		   }
-		 }
-	      then posix_mkdir=:
-	      fi
-	      rmdir "$tmpdir/d" "$tmpdir"
-	    else
-	      # Remove any dirs left behind by ancient mkdir implementations.
-	      rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
-	    fi
-	    trap '' 0;;
-	esac;;
+	trap '' 0;;
     esac
 
     if
       $posix_mkdir && (
-	umask $mkdir_umask &&
-	$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+        umask $mkdir_umask &&
+        $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
       )
     then :
     else
 
-      # The umask is ridiculous, or mkdir does not conform to POSIX,
+      # mkdir does not conform to POSIX,
       # or it failed possibly due to a race condition.  Create the
       # directory the slow way, step by step, checking for races as we go.
 
       case $dstdir in
-	/*) prefix='/';;
-	-*) prefix='./';;
-	*)  prefix='';;
+        /*) prefix='/';;
+        [-=\(\)!]*) prefix='./';;
+        *)  prefix='';;
       esac
 
-      eval "$initialize_posix_glob"
-
       oIFS=$IFS
       IFS=/
-      $posix_glob set -f
+      set -f
       set fnord $dstdir
       shift
-      $posix_glob set +f
+      set +f
       IFS=$oIFS
 
       prefixes=
@@ -403,34 +409,34 @@
 
       for d
       do
-	test -z "$d" && continue
+        test X"$d" = X && continue
 
-	prefix=$prefix$d
-	if test -d "$prefix"; then
-	  prefixes=
-	else
-	  if $posix_mkdir; then
-	    (umask=$mkdir_umask &&
-	     $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
-	    # Don't fail if two instances are running concurrently.
-	    test -d "$prefix" || exit 1
-	  else
-	    case $prefix in
-	      *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
-	      *) qprefix=$prefix;;
-	    esac
-	    prefixes="$prefixes '$qprefix'"
-	  fi
-	fi
-	prefix=$prefix/
+        prefix=$prefix$d
+        if test -d "$prefix"; then
+          prefixes=
+        else
+          if $posix_mkdir; then
+            (umask $mkdir_umask &&
+             $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+            # Don't fail if two instances are running concurrently.
+            test -d "$prefix" || exit 1
+          else
+            case $prefix in
+              *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+              *) qprefix=$prefix;;
+            esac
+            prefixes="$prefixes '$qprefix'"
+          fi
+        fi
+        prefix=$prefix/
       done
 
       if test -n "$prefixes"; then
-	# Don't fail if two instances are running concurrently.
-	(umask $mkdir_umask &&
-	 eval "\$doit_exec \$mkdirprog $prefixes") ||
-	  test -d "$dstdir" || exit 1
-	obsolete_mkdir_used=true
+        # Don't fail if two instances are running concurrently.
+        (umask $mkdir_umask &&
+         eval "\$doit_exec \$mkdirprog $prefixes") ||
+          test -d "$dstdir" || exit 1
+        obsolete_mkdir_used=true
       fi
     fi
   fi
@@ -443,14 +449,25 @@
   else
 
     # Make a couple of temp file names in the proper directory.
-    dsttmp=$dstdir/_inst.$$_
-    rmtmp=$dstdir/_rm.$$_
+    dsttmp=${dstdirslash}_inst.$$_
+    rmtmp=${dstdirslash}_rm.$$_
 
     # Trap to clean up those temp files at exit.
     trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
 
     # Copy the file name to the temp name.
-    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+    (umask $cp_umask &&
+     { test -z "$stripcmd" || {
+	 # Create $dsttmp read-write so that cp doesn't create it read-only,
+	 # which would cause strip to fail.
+	 if test -z "$doit"; then
+	   : >"$dsttmp" # No need to fork-exec 'touch'.
+	 else
+	   $doit touch "$dsttmp"
+	 fi
+       }
+     } &&
+     $doit_exec $cpprog "$src" "$dsttmp") &&
 
     # and set any options; do chmod last to preserve setuid bits.
     #
@@ -465,66 +482,6 @@
 
     # If -C, don't bother to copy if it wouldn't change the file.
     if $copy_on_change &&
-       old=`LC_ALL=C ls -dlL "$dst"	2>/dev/null` &&
-       new=`LC_ALL=C ls -dlL "$dsttmp"	2>/dev/null` &&
-
-       eval "$initialize_posix_glob" &&
-       $posix_glob set -f &&
-       set X $old && old=:$2:$4:$5:$6 &&
-       set X $new && new=:$2:$4:$5:$6 &&
-       $posix_glob set +f &&
-
-       test "$old" = "$new" &&
-       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
-    then
-      rm -f "$dsttmp"
-    else
-      # Rename the file to the real destination.
-      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
-
-      # The rename failed, perhaps because mv can't rename something else
-      # to itself, or perhaps because mv is so ancient that it does not
-      # support -f.
-      {
-	# Now remove or move aside any old file at destination location.
-	# We try this two ways since rm can't unlink itself on some
-	# systems and the destination file might be busy for other
-	# reasons.  In this case, the final cleanup might fail but the new
-	# file should still install successfully.
-	{
-	  test ! -f "$dst" ||
-	  $doit $rmcmd -f "$dst" 2>/dev/null ||
-	  { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
-	    { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
-	  } ||
-	  { echo "$0: cannot unlink or rename $dst" >&2
-	    (exit 1); exit 1
-	  }
-	} &&
-
-	# Now rename the file to the real destination.
-	$doit $mvcmd "$dsttmp" "$dst"
-      }
-    fi || exit 1
-
-    trap '' 0
-  fi
-done
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
-# time-stamp-end: "; # UTC"
-# End:
-est -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
-    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
-    { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
-    { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
-
-    # If -C, don't bother to copy if it wouldn't change the file.
-    if $copy_on_change &&
        old=`LC_ALL=C ls -dlL "$dst"     2>/dev/null` &&
        new=`LC_ALL=C ls -dlL "$dsttmp"  2>/dev/null` &&
        set -f &&
@@ -536,6 +493,13 @@
     then
       rm -f "$dsttmp"
     else
+      # If $backupsuffix is set, and the file being installed
+      # already exists, attempt a backup.  Don't worry if it fails,
+      # e.g., if mv doesn't support -f.
+      if test -n "$backupsuffix" && test -f "$dst"; then
+        $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null
+      fi
+
       # Rename the file to the real destination.
       $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
 
@@ -550,9 +514,9 @@
         # file should still install successfully.
         {
           test ! -f "$dst" ||
-          $doit $rmcmd -f "$dst" 2>/dev/null ||
+          $doit $rmcmd "$dst" 2>/dev/null ||
           { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
-            { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+            { $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
           } ||
           { echo "$0: cannot unlink or rename $dst" >&2
             (exit 1); exit 1

Modified: trunk/Build/source/utils/asymptote/revision.cc
===================================================================
--- trunk/Build/source/utils/asymptote/revision.cc	2025-02-11 20:56:16 UTC (rev 73900)
+++ trunk/Build/source/utils/asymptote/revision.cc	2025-02-11 21:53:03 UTC (rev 73901)
@@ -1,2 +1,2 @@
-const char *REVISION="2.98";
+const char *REVISION="2.99";
 const char *AsyGLVersion="1.02";



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